Automatiser des sommes de sous totaux

Signaler
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
24 août 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Pour mon travail je remplis des devis sur le tableur excel. Ces devis contiennent énormément de sous-totaux !!
Pour gagner un temps précieux j'aimerais automatiser ces sous-totaux. Pour ce faire étant donné que je ne connais jamais le nombre de ligne contenu dans les sous parties, mon idée est de mettre un certain symbole (pour exemple ²) dans une colonne spécifique (la A par exemple) est que lorsque j'appui sur le bouton (que j'ai créé pour l'occasion...) le code me permette de faire la somme des éléments des lignes qui sont au-dessus jusqu’à la ligne du précédent symbole. J'espère que ma demande est clair ...

C'est la seule idée que j'ai eu pour pouvoir me détacher du problème du nombre de ligne variable par section...

Dans l'attente merci d'avance

4 réponses

Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
bonjour

Dans le code de la feuille, ajouter : (attention on par de la ligne 1, jusqu'à la ligne audessus du curseur, et donc


Private Sub Calculer_Soustotal()
Dim row As Integer
Dim subtotal As Double
ThisWorkbook.ActiveSheet.Select
For row = 1 To Selection.row - 1
subtotal = subtotal + ActiveSheet.Cells(row, Selection.Column).Value
Next
Msgbox Cdbl(subtotal)
End Sub
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
24 août 2011

Si je comprend correctement ce que tu fais (ce qui n'est pas gagné..) il y a plusieurs choses qui ne conviennent pas à mon besoin :

- je ne pars jamais de la ligne 1 mais ça je peux adapter
- tu met selection.row mais moi je veux que les lignes se sélectionne automatiquement en fonction de mon symbole or jamais tu ne fais intervenir une sélection de la sorte et pourtant je suis obligé de passer par là ...
- ensuite j'ai plusieurs sous - totaux donc il va falloir faire intervenir une boucle (je ne sais pas de quel type ...)
- enfin j'aimerais que mes sous-totaux s'inscrivent dans une cellule précise de la ligne où j'ai inscris le symbole donc pas de message box

Je sais que vous avez du voir plus clair comme demande... Je suis novice en vba

En espérant que vous ayez compris ma demande. Merci d'avance
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Je vais te répéter ce que j'ai déjà eu l'occasion de te dire dans une autre discussion et éviter, cette fois-ci, de te servir un code tout fait.
En lieu et place, je vais te mettre sur une piste et te laisser faire un peu seul (c'est important). Je viendrai ensuite au besoin corriger unj point ou l'autre.

Piste :
1)- nomme les plages concernées. par exemple "plage1", "plagfe2", etc...
Cela se fait depuis la feuille de calcul. Tu sélectionne une plage, clique droit, choix "nommer" ==>> tu nommes
2) réserve la dernière ligne de chacune de ces plages pour y afficher le sous-total (le total de cette plage, donc)

Remarques : si tu ajoutes une ligne avant la dernière à l'une quelconque de ces plages, la plage s'agrandit seule, en incluant cette ligne (pratique, non ?)

Entraîne-toi maintenant à faire cela et à langer ces petites instructions :
ActiveSheet.Range("Plage1").Select
msgbox "regarde"
ActiveSheet.Range("Plage2").Select
msgbox "regarde"

insère des lignes où tu veux dans ces plages et relance les instructions et regarde.
Mets maintenant (par exemple) des nombres en colonne A (par exemple) de ces deux plage et lance ces instructions-là :
MsgBox WorksheetFunction.Sum(activesheet.Range("qq").Columns(1))
MsgBox WorksheetFunction.Sum(activesheet.Range("bb").Columns(1))

C'est à propos, que je te fais afficher dans une msgbox et non encore dans une cellule. C'est pour que tu apprennes à travailler pas à pas.
On verra le reste lorsque tu auras passé cette première étape avec succès.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
pardon. Il va sans dire que "qq" et "bb" sont à remplacer par "Plage1" et "Plage2", hein...


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient