Comment faire un sous-total

Fermé
arpette - 2 avril 2010 à 19:19
 Arpette - 7 avril 2010 à 14:39
Bonsoir le forum,

J'ai une macro en VB et je souhaiterais faire des sous-totaux :
j'ai des articles communs (triés) en colonne B, j'ai des chiffres en colonne C. J'aimerais faire un sous total à chaque changement de code et ne garder que la ligne sous total.
Merci de votre aide

6 réponses

Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
3 avril 2010 à 01:07
La commande Données/Sous-total fait tout ça très bien sans avoir besoin d'une macro ...
0
Bonjour Raymond et merci de me répondre, oui je connais mais le problème et c'est pourquoi je veux mettre le code dans ma macro, c'est que je souhaite ne garder que les lignes où il ya les sous totaux.
Merci de votre aide.
0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
3 avril 2010 à 12:38
J'avais bien compris, et je confirme que la commande Sous-Total le permet : il suffit d'actionner les [+] et les [-] à gauche de la feuille (boutons du mode Plan).
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
3 avril 2010 à 10:31
Bonjour,

soustot = ["SumProduct((B2:B9= ""article1"") * 1, C2:C9)"]

Fabrique tes adresses de plage par concaténation.

eric
0
Bonjour Eric, et merci de me répondre. Cela ne fonctionne pas, j'ai pense qu'il faut que je me posistionne sur la dernière ligne de la collone B et je boucle en remontant. Si les articles sont identiques, j'en fais la somme des valeurs de la colonne E et je supprime les lignes comptées et garde la dernière avec le total et je remonte et ainsi de suite. Le problème je ne sais pas comment l'écrire en VB.
Merci de ton aide.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
3 avril 2010 à 12:16
J'avais zappé la fin, pas vu que tu voulais le résultat sur la feuille.....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour le forum, personne a une réponsz à mon problème
A bientôt.
0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
6 avril 2010 à 23:36
Pourquoi ? Ma réponse n'est pas valable ?
Tu veux absolument passer par une macro pour une chose aussi simple ?
Envoie-moi ton fichier, je te le retourne complété dans les 24 heures ...
0
Bonjour Raymond, ta réponse me convient, mais ce n"est pas moi qui utilise le fichier et je veux que ça soit simple pour l' utilisateur ( juste un bouton ). Mais jai trouver la solution que voici :

Application.ScreenUpdating = False
j = 1
While Cells(j + 1, 1) <> ""
i = 0
While UCase(Cells(j + i + 1, 2)) = UCase(Cells(j + i + 2, 2))
i = i + 1
Wend
If i > 0 Then
Cells(j + i + 1, 3) = WorksheetFunction.Sum(Range(Cells(j + 1, 3), Cells(j + i + 1, 3)))
Range(Cells(j + 1, 1), Cells(j + i, 1)).EntireRow.Delete
End If
j = j + 1
Wend
Application.ScreenUpdating = False
0