Code VBA pour regrouper des lignes et faire une somme

Bonjour a tous,

Je recherche une méthode rapide a base de code vba pour regrouper des lignes dans une base de données.

Voir le fichier exemple pour plus de details...

Merci de votre aide

85essai.xlsx (10.52 Ko)

Bon, j'ai réussi a faire qq chose avec des filtres mais je sais pas si je suis sur la bonne voie.... au moins ca fait ce que je veux mais je suis pas sur que ce sois le moyen le plus rapide pour le faire.

Si c'est correct, j'aimerais savoir comment faire pour mettre les criteres de filtre variables et ainsi pouvoir faire une boucle sur tous les critères des colonnes....

Ci-joint fichier exemple avec macro test

Au plaisir de voir comment m’améliorer

54essai.xlsm (18.65 Ko)

Bon, j'avance a mon rythme toujours sur la meme base....

Voici mon code :

Sub test()

Dim DrLig As Long, Lig As Long

For Each shift In Array("Jour", "Nuit")

For Each code In Array("93", "98", "99") =========> pb ici !!!

Total = 0

DrLig = Sheets(1).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row

ActiveSheet.Range("$A$1:$F$" & DrLig).AutoFilter Field:=3, Criteria1:=shift

ActiveSheet.Range("$A$1:$F$" & DrLig).AutoFilter Field:=5, Criteria1:=code

For Lig = 2 To DrLig

If Rows(Lig).Hidden = False Then

ma = Cells(Lig, 1)

da = Cells(Lig, 2)

Sh = Cells(Lig, 3)

co = Cells(Lig, 5)

Total = Cells(Lig, 6) + Total

Rows(Lig).ClearContents

End If

Next

Cells(Lig, 1) = ma

Cells(Lig, 2) = da

Cells(Lig, 3) = Sh

Cells(Lig, 4) = ""

Cells(Lig, 5) = co

Cells(Lig, 6) = Total

Cells(Lig, 6).NumberFormat = "0.00"

Next

Next

Columns("A:F").Select

Selection.AutoFilter

ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear

ActiveWorkbook.Worksheets(1).Sort.SortFields.Add Key:=Range("B2:B" & DrLig + 1) _

, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets(1).Sort

.SetRange Range("A1:F" & DrLig + 1)

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

With Worksheets(1)

If .FilterMode = True Then .ShowAllData

End With

End Sub

Le seul point bloquant c'est que je ne trouve pas comment faire pour recuperer la liste des criteres du filtre automatique de ma cellule Code (d'ou le tableau Array avec les differents codes a filtrer 93,98,99....). Si quelqu'un sait comment faire ca me serait vraiment utile....

Merci

55essai.xlsm (21.29 Ko)

Bonjour

Je voudrais bien t'aider mais tu fais des codes avec 2010 et mon XL 2003 n'en veut pas

Je voudrais savoir quels sont tes critères de filtre

J'ai vu que la colonne 1 tu filtres sur "MA#5" Toujours sur cette donnée ?

Sur la colonne 2 tu filtres sur la date : Toujours cette date ?

Sur la colonne 3 tu filtres soit sur jour soit sur nuit : Exact ?

Sur la colonne 5 tu filtres sur le code : C'est ton problème ?

Pour cela on peut passer par un l'objet "Scripting.dictionary"

A suivre

Bonjour

Regardes si cela va dans l'idée de ce que tu veux

Comme d'habitude que d'excellentes réponses a toutes mes questions )))

Merci de ton aide !

Rechercher des sujets similaires à "code vba regrouper lignes somme"