Question somme sous-total en VBA

Bonjour,

Je suis débutante en VBA et je n'arrive pas à faire des sous-totaux et totaux dans un tableau. . Vous pouvez jeter un coup d'œil au fichier en pièce jointe pour que cela soit plus clair. J'ai été chercher les données des colonnes C à I d'une base de données à l'aide la fonction RechercheV, tandis que les données M à O sont issue de calculs. Maintenant, dans les lignes Sous-total en vert, j'aimerais avoir le sous-total pour chaque endroit et avoir le grand total dans l'avant dernière ligne Totaux tous les endroits en bleu.

J'ai essayé un bout de code, mais il ne donne pas le résultat escompté :

Sub Test()
Dim DernLigne As Long
Dim LigneDeb As Long
Dim LigneFin As Long
Dim c As Range

DernLigne = Range("A" & Rows.Count).End(xlUp).Row
LigneDeb = Range("B1").End(xlDown).Row
LigneFin = LigneDeb + Range("B1").Rows.Count - 1
'Worksheets("Tableau").Range("B2:B" & DernLigne).Select
For Each c In Range("A3:A" & DernLigne).Cells
If ActiveCell.Text = "Sous-total" Then
ActiveCell.Offset(0, 2).Value = Application.Sum("C3:C" & DernLigne)
'ActiveCell.Offset(1, -2).Select
Else: ActiveCell.Offset(1, 0).Select
Exit For
End If
Next
End Sub

J'apprécierais vraiment que vous m'aidiez.

Merci d'avance,

AnalysteQC

25exemple.xlsx (31.50 Ko)

Bonsoir,

Ce sont des additions que tu fais ?

La fonction SOUS.TOTAL paraît adéquate pour tes sous-totaux et le total.

Et je ne vois pas l'intérêt de VBA pour ça.

Cordialement.

Merci beaucoup pour ta réponse, MFerrand.

Il s'agit bel et bien d'additions. Toutefois, j'aimerais utiliser VBA pour automatiser le tout, car ce fichier sera utilisé par plusieurs clients. Si c'est impossible, j'essaierai de m'arranger autrement.

Une formule, on la pose à un endroit d'une feuille, on n'y touche plus, elle fait son boulot et renvoie son résultat, on peut même l'oublier...

VBA permet de faire des calculs et d'affecter directement des résultats en se passant de formules, et d'alléger ainsi un classeur dans le cas où l'abondance de formules l'alourdirait...

Aussi quand je vois que l'on veut utiliser VBA pour mettre des formules, je pense toujours d'abord que c'est faire une mauvaise utilisation de VBA (comme vouloir toujours copier-coller alors que VBA peut faire autrement...), un mimétisme de pratiques manuelles et que l'on continue de penser en utilisation manuelle d'Excel en mettant VBA à contribution, au lieu de penser en VBA pour lui faire faire ce qui justement ne pourrait pas être fait manuellement, ou pas de la même façon.

En outre mettre une formule en VBA est toujours plus long que de l'écrire directement dans la cellule !

Je m'abstiens donc en général de produire du code à cet usage, n'aimant pas faire quelque chose que je trouve plutôt inepte, si je ne suis pas absolument convaincu que faire ainsi est meilleur que toute autre solution...

Cordialement.

D'accord. Alors, quelqu'un pourrait-il m'aider à importer des données dans mon tableau à l'aide de formules?

Bonjour,

d'accord avec MFerrand. Excel a déjà tous les outils pour faire ça.

Déjà supprime TOUTES tes fusions de cellule qui empêche d'utiliser excel convenablement et mets tes titres en ligne 2.

Supprime tes lignes de sous-total.

Ajoute une colonne Groupe en A. Tu mets 1 pour les régions, 2 pour les centre etc.

Ensuite dans Données tu cliques sur Sous-total.

Tu choisis 'A chaque changement de : ' groupe, 'Utiliser la fonction : ' Somme, et tu coches les champs où tu veux un sous total.

Excel t'insèrera les lignes de sous-total là où il faut et te mettra les fonctions.

Et avec une MFC tu peux surligner tes lignes de sous-total.

eric

66exemple.xlsx (64.43 Ko)

Merci eriiic.

Rechercher des sujets similaires à "question somme total vba"