Comment faire un sous-total

arpette -  
 Arpette -
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

A voir également:

6 réponses

Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
La commande Données/Sous-total fait tout ça très bien sans avoir besoin d'une macro ...
0
arpette
 
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 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

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

Fabrique tes adresses de plage par concaténation.

eric
0
arpette
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
Arpette
 
Bonjour le forum, personne a une réponsz à mon problème
A bientôt.
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
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
Arpette
 
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