Faire un total sans sous-totaux
Résolu/Fermé
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
-
30 avril 2017 à 14:48
Marie.Cherie Messages postés 9 Date d'inscription dimanche 30 avril 2017 Statut Membre Dernière intervention 2 mai 2017 - 2 mai 2017 à 17:02
Marie.Cherie Messages postés 9 Date d'inscription dimanche 30 avril 2017 Statut Membre Dernière intervention 2 mai 2017 - 2 mai 2017 à 17:02
A voir également:
- Faire un total sans sous-totaux
- Total uninstall - Télécharger - Divers Utilitaires
- Total av avis ✓ - Forum Consommation & Internet
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Total adblock avis - Forum Mozilla Firefox
- Rolland souhaite calculer le montant total des ventes de son magasin. le fichier contient, pour chaque produit, la quantité vendue et le prix unitaire. calculez le montant total des ventes. ✓ - Forum Excel
9 réponses
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
30 avril 2017 à 17:59
30 avril 2017 à 17:59
Bonjour
Pourquoi ne pas utiliser plutôt la fonction sous.total ?
- en renvoyant la formule
Range("B22").FormulaLocal = "=SOUS.TOTAL(9;B1:B20)"
- en renvoyant la valeur
Range("B24").Value = Application.WorksheetFunction.Subtotal(9, Range("B1:B20"))
http://www.cjoint.com/c/GDEp6qcQ8D8
Cdlmnt
Pourquoi ne pas utiliser plutôt la fonction sous.total ?
- en renvoyant la formule
Range("B22").FormulaLocal = "=SOUS.TOTAL(9;B1:B20)"
- en renvoyant la valeur
Range("B24").Value = Application.WorksheetFunction.Subtotal(9, Range("B1:B20"))
http://www.cjoint.com/c/GDEp6qcQ8D8
Cdlmnt
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
30 avril 2017 à 19:12
30 avril 2017 à 19:12
Peux tu envoyer la partie concernée de ton fichier,sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
30 avril 2017 à 20:32
30 avril 2017 à 20:32
Je me sens pas trop de couper ma macro, je te l'envoie. Il s'agit de la feuille estimatif et la macro estimatif, tu ne peux pas te tromper !
J'ai mis un petit code couleur pour te signaler les éléments en question.
Cette feuille importe les éléments à partir d'autres feuilles que je t'ai mises si tu veux la lancer
http://www.cjoint.com/c/GDEsFHPX6du
Par ailleurs dans la macro, il doit bien y avoir quelques petites choses qui ne vont pas, je suis novice dans ce domaine, j'apprends encore
.
J'ai mis un petit code couleur pour te signaler les éléments en question.
Cette feuille importe les éléments à partir d'autres feuilles que je t'ai mises si tu veux la lancer
http://www.cjoint.com/c/GDEsFHPX6du
Par ailleurs dans la macro, il doit bien y avoir quelques petites choses qui ne vont pas, je suis novice dans ce domaine, j'apprends encore
.
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
30 avril 2017 à 20:29
30 avril 2017 à 20:29
Essaies peut être quelque chose comme ceci
Dim f As String
f = "=SOMME.SI(A1:A20; ""<>"" & ""sous total"" ;D1:D20)"
Range("D24").FormulaLocal = f
Cdlmnt
Dim f As String
f = "=SOMME.SI(A1:A20; ""<>"" & ""sous total"" ;D1:D20)"
Range("D24").FormulaLocal = f
Cdlmnt
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
30 avril 2017 à 20:34
30 avril 2017 à 20:34
J'ai deja essayé cela, mais il n'en veut pas.
Dans ce cas, il me met une erreur.
Dans ce cas, il me met une erreur.
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
30 avril 2017 à 20:40
30 avril 2017 à 20:40
Sur celui ci, ça fonctionne
http://www.cjoint.com/c/GDEsN5pVfs8
http://www.cjoint.com/c/GDEsN5pVfs8
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
30 avril 2017 à 21:17
30 avril 2017 à 21:17
Je l'ai appliqué;
Sur ma macro, ca affiche VRAI, et pas la valeur.
C'est dû à un réglage ?
Sur ma macro, ca affiche VRAI, et pas la valeur.
C'est dû à un réglage ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
Modifié le 30 avril 2017 à 21:42
Modifié le 30 avril 2017 à 21:42
Essaies ceci avec ta macro
Dim f As String
f = "=sumif(B6:B800, ""<>"" & ""sous total"", I6:I800)"
ActiveCell.Offset(0, 8).Formula = f
http://www.cjoint.com/c/GDEtLieeNc8
RQ. Vérifies que dans ta feuille le mot "sous total" est bien écrit sans espace devant et derrière
Cdlmnt
Dim f As String
f = "=sumif(B6:B800, ""<>"" & ""sous total"", I6:I800)"
ActiveCell.Offset(0, 8).Formula = f
http://www.cjoint.com/c/GDEtLieeNc8
RQ. Vérifies que dans ta feuille le mot "sous total" est bien écrit sans espace devant et derrière
Cdlmnt
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
30 avril 2017 à 21:54
30 avril 2017 à 21:54
Alors cela m'affiche toujours VRAi..
Si je mets deux guillements : ""<>"", il me demande NOM?
Je dois t'avouer que je ne comprends pas vraiment ce que signifie ce VRAI, je pensai qu'avec .Formula, il affichait la valeur.
Merci Encore pour ton aide et ton temps !
Si je mets deux guillements : ""<>"", il me demande NOM?
ThisWorkbook.Sheets("basequantitatif").Activate
Range("base_totbac").Select
Selection.Copy
ThisWorkbook.Sheets("Estimatif BAC").Activate
ActiveSheet.Paste
ActiveCell.Offset(0, 0).Select
Dim tst As String
tst = "=WorksheetFunction.SumIf(Range(B6:B800), " <> " & ""sous total"", Range(I6:I800)) * 2.5"
ActiveCell.Offset(0, 8).Formula = tst
Je dois t'avouer que je ne comprends pas vraiment ce que signifie ce VRAI, je pensai qu'avec .Formula, il affichait la valeur.
Merci Encore pour ton aide et ton temps !
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
Modifié le 1 mai 2017 à 15:41
Modifié le 1 mai 2017 à 15:41
1. je pensai qu'avec .Formula, il affichait la valeur.
non ! .Formula renvoie une formule excel
dans ce code f est une formule, en fait le texte (type string) de la formule qui sera inscrite dans la cellule excel
2. Si tu veux renvoyer une valeur, c'est .Value qui te faut utiliser, et le code n'est plus le même.
Application.WorksheetFunction.SumIf fait appel à la fonction excel SOMME.SI et utilise les plages "vba" Range(...)
Cdlmnt
non ! .Formula renvoie une formule excel
dans ce code f est une formule, en fait le texte (type string) de la formule qui sera inscrite dans la cellule excel
Dim f As String f = "=sumif(B6:B800, ""<>"" & ""sous total"", I6:I800)" ActiveCell.Offset(0, 8).Formula = f
2. Si tu veux renvoyer une valeur, c'est .Value qui te faut utiliser, et le code n'est plus le même.
Application.WorksheetFunction.SumIf fait appel à la fonction excel SOMME.SI et utilise les plages "vba" Range(...)
tst = Application.WorksheetFunction.SumIf(Range("B6:A800"), "<>" & "sous total", Range("I6:I800")) * 2.5 ActiveCell.Offset(0, 8).Value = tst
Cdlmnt
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
1 mai 2017 à 21:36
1 mai 2017 à 21:36
Bonjour ccm81,
Ta dernière solution me donne un résultat 0.00, jusque là j'utilisai .Formula dans mes lignes de code, et c'est la premiere fois que ça refuse de calculer.
Ta dernière solution me donne un résultat 0.00, jusque là j'utilisai .Formula dans mes lignes de code, et c'est la premiere fois que ça refuse de calculer.
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
Modifié le 1 mai 2017 à 22:20
Modifié le 1 mai 2017 à 22:20
Ta dernière solution me donne un résultat 0.00, jusque là j'utilisai .Formula dans mes lignes de code, et c'est la premiere fois que ça refuse de calculer.
ça ne refuse pas de calculer puisque tu trouves 0.00, par contre, il doit y avoir un problème ailleurs
Mon exemple avec tes plages (version formule et version valeur)
http://www.cjoint.com/c/GEburaEm1e8
Cdlmnt
ça ne refuse pas de calculer puisque tu trouves 0.00, par contre, il doit y avoir un problème ailleurs
Mon exemple avec tes plages (version formule et version valeur)
http://www.cjoint.com/c/GEburaEm1e8
Cdlmnt
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
Modifié le 2 mai 2017 à 13:49
Modifié le 2 mai 2017 à 13:49
Salut ccm81,
Je pense que l'erreur vient du fait qu'il cherche la valeur de la cellule ù doit s'afficher le total, aussi que penses tu de :
ou de
Le souci est que ça rest 0.00, je ne sais pas d'où vient le problème. Lorsque je sépare les formules, elles se calculent très bien. Mais impossible jusque là de les assembler
En te remerciant pour ton retour,
Je pense que l'erreur vient du fait qu'il cherche la valeur de la cellule ù doit s'afficher le total, aussi que penses tu de :
ActiveCell.Offset(0, 8).Formula = "= Sum(I7:ActiveCell.Row - 1) - SumIf(B7:ActiveCell.Row-1,""sous total"",I7:ActiveCell.Row-1)"
ou de
ActiveCell.Offset(0, 8).FormulaR1C1 = "=Sum(R" & 7 & "C:R" & ActiveCell.Row - 1 & "C) - SumIf(C[-6]:R" & 7 & "C,""sous total"",R" & 7 & "C:R" & ActiveCell.Row - 1 & "C)"
Le souci est que ça rest 0.00, je ne sais pas d'où vient le problème. Lorsque je sépare les formules, elles se calculent très bien. Mais impossible jusque là de les assembler
En te remerciant pour ton retour,
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
Modifié le 2 mai 2017 à 14:46
Modifié le 2 mai 2017 à 14:46
1. Il y a déjà un problème ici
Sum(I7:ActiveCell.Row - 1)
I7:ActiveCell.Row - 1 ne définit pas une plage (il manque la colonne après le ":"
2. J'ai trouvé ton fichier plus haut (évites de répondre en Commentaire, ça ne met pas le message en fin de post )
J'ai essayé de comprendre ce que tu veux faire
Pour des raisons de taille de fichier, le fichier joint ci-dessous, ne contient QUE la feuille Estimatif BAC sans ses formules
http://www.cjoint.com/c/GEcmHlCNvQ8
J'ai choisi le double clic pour lancer la macro, mais on peut la lancer autrement bien sûr
Pour tester, tu insères des lignes avant la ligne total puis clic-clic sur la cellule total, tu devrais voir la formule évoluer
Si ça te convient, il te suffit de copier la macro dans le module de la feuille Estimatif BAC de ton fichier
Sinon, il faudra expliquer davantage
3. RQ. Tu peux quand même te passer de macro, il suffit de garder une ligne vide de service avant la ligne total (ici garder la ligne 83 vide) et d'insérer des lignes avant celle ci, la formule suivra.
Cdlmnt
Sum(I7:ActiveCell.Row - 1)
I7:ActiveCell.Row - 1 ne définit pas une plage (il manque la colonne après le ":"
2. J'ai trouvé ton fichier plus haut (évites de répondre en Commentaire, ça ne met pas le message en fin de post )
J'ai essayé de comprendre ce que tu veux faire
Pour des raisons de taille de fichier, le fichier joint ci-dessous, ne contient QUE la feuille Estimatif BAC sans ses formules
http://www.cjoint.com/c/GEcmHlCNvQ8
J'ai choisi le double clic pour lancer la macro, mais on peut la lancer autrement bien sûr
Pour tester, tu insères des lignes avant la ligne total puis clic-clic sur la cellule total, tu devrais voir la formule évoluer
Si ça te convient, il te suffit de copier la macro dans le module de la feuille Estimatif BAC de ton fichier
Sinon, il faudra expliquer davantage
3. RQ. Tu peux quand même te passer de macro, il suffit de garder une ligne vide de service avant la ligne total (ici garder la ligne 83 vide) et d'insérer des lignes avant celle ci, la formule suivra.
Cdlmnt
Marie.Cherie
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
2 mai 2017
2 mai 2017 à 17:02
2 mai 2017 à 17:02
Tu es mon héros !
Problème résolu, je te remercie énormément !
Je n'aurai pas pensé à cela.
Problème résolu, je te remercie énormément !
Je n'aurai pas pensé à cela.
30 avril 2017 à 18:41
C'est que ma macro ne contient pas de fonction sous total, en fait il s'agit simplement d'une ligne qui vient s'ajouter si plusieurs éléments identiques se suivent.
C'est pourquoi j'ai utilisé la fonction sumif, pour qu'il utilise en critère le texte.
Est ce que la macro entière t'aiderai à mieux me comprendre ?
Merci encore