Utilisation des fonctions de boucle et de sum avec Vlookup

J'ai une macro qui search essentiellement la colonne C dans Sheet1 pour la valeur "Rec" et copy la valeur correspondante dans la colonne D, puis la passe dans la dernière cellule ouverte dans la colonne B de Sheet2. Il fait exactement ce qu'il est censé faire et est comme suit:

Sub FindPasteGSVInNextCell() Worksheets("Sheet2").Activate Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Value = _ WorksheetFunction.VLookup("Rec", Sheet1.Range("C2:H25"), 2, False) End Sub 

Je souhaite maintenant que le code, au lieu de simplement searchr une seule valeur "Rec", search toutes les lignes avec "Rec" dans la colonne C et résumer toutes leurs valeurs correspondantes dans la colonne D, puis placez cette sum dans Sheet2.

Je suppose que j'ai besoin d'une sorte de boucle Do Until ou quelque chose, mais je ne sais pas exactement comment le formater … Je suis un débutant avec VBA, donc toute aide serait grandement appréciée.

Vlookup ne fonctionnera pas, car il continuera à ne saisir que la première instance de "Rec".

Sur la feuille 2, énumérez toutes les catégories possibles dans la colonne A puis dans la colonne B1 mettez

  = sumif(Sheet1!C:C,A1,Sheet1!D:D) 

puis copyz-le. Cela vous procurera les totaux par catégorie.

Si vous souhaitez utiliser VBA, vous aurez besoin d'une list de configuration de catégories quelque part, soit codées en dur, soit listées quelque part que vous pouvez effectuer.

Si votre list se trouvait dans la colonne A sur Sheet2, vous voudriez:

 dim ws as worksheet set ws = Worksheets("Sheet2") For each i in ws.range(ws.Range("A1"),ws.Range("A1").offset(xldown)).Cells i.offset(,1) = WorksheetFunction.Sumif(Worksheets("Sheets1").Range("C:C"), _ i,Worksheets("Sheets1").Range("D:D")) next i