Boucle Comparaison cellule

Bonjour,

J'ai un fichier contenant 2 feuilles

Feuille C: récupérer en fonction du libellé (colonne B ) la somme dépensé dans la feuille "Dépenses". Les libellés se trouvent en G et les montants en J. Je veux coller la somme Col E feuille "C".

Je dois récupérer les montants ayant le même libellé pour le coller dans une autre feuille.

Le nombre de ligne contenu dans "Dépenses" est variable.

Je débute en VBA est je bloque pour le coup....

Je ne sais pas comment exprimer ce que je souhaite faire, c'est-à-dire que si c'est égal il faut que je récupère tout les montants du libellé concerné et que je le colle dans "C" à côté du même libellé.

Voici le début de ma macro:

Sub formdepfourni()

Dim Der_ligne As Integer,

Dim Col As Integer

Dim DepF As Variant, Somme As Integer

'faire ctrl fleche jusqu'à la dernière colonne

Selection.End(xlToRight).Select

Der_ligne = ActiveCell.Row

DepF = Worksheets("C").Range("B3:B38")

Sheets("Dépenses").Activate

For li = 2 To Der_ligne

If DepP = Worksheets("Dépenses").Range(Cells(3, 7), Cells(Der_ligne, 7)) Then

End If

Next li

End Sub

c depenses

Bonsoir SarahLeyla, bonsoir le forum,

Les photos c'est bien ! Mais le fichier c'est beaucoup mieux ! Il faut que tu comprennes que pour te proposer un code valable il faut qu'on puisse tester. PhotoShop ne sait toujours pas faire de l'Excel...

Bonsoir SarahLeyla, bonsoir le forum,

Comme mon PhotoShop est spécial, je te propose le code ci-dessous. Attenfion ! Dans l'onglet C il faut que les Libellés soient listés dans le même ordre que dans l'onglet Dépenses pour que ça fonctionne...

Sub Macro1()
Dim OC As Worksheet 'délare la variable OC (onglet C)
Dim OD As Worksheet 'délare la variable OD (onglet Dépenses)
Dim TV As Variant 'délare la variable TV (Tableau des Valeurs)
Dim NL As Integer 'délare la variable NL (Nombre de Lignes)
Dim D As Object 'délare la variable D (Dictionnaire)
Dim I As Integer 'délare la variable I (Incrément)
Dim J As Integer 'délare la variable J (incrément)
Dim TMP As Variant 'délare la variable TMP (Tablau TeMPoraire)
Dim TS() As Variant 'délare la variable TS (Tableau des Sommes)

Set OC = Worksheets("C") 'définit l'onglet OC
Set OD = Worksheets("Dépenses") 'définit l'onglet OD
TV = OD.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
NL = UBound(TV, 1) 'définit le nombre de lignes NL du tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To NL 'boucle sur toutes les lignes I du tableau des valeurs (en partant de la seconde)
    D(TV(I, 7)) = "" 'alimente de dictionnaire D avec la donnée en colonne 7 (le libellé)
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP la liste des éléments du dictionnaire D sans doublon
ReDim TS(UBound(TMP)) 'redimensionne le tableau des somme TS (autant de ligne que TMP)
For J = 0 To UBound(TMP) 'boucle 1 : sur tous les éléments du tableau temporaire TMP
    For I = 2 To NL 'boucle 2 : sur toutes les lignes I du tableau des valeurs (en partant de la seconde)
        'si le libellé en colonne 7 de TV, correpond à l'élément TMP(J), définit la somme TS(J)
        If TV(I, 7) = TMP(J) Then TS(J) = TS(J) + TV(I, 10)
    Next I 'prochaine ligne de la boucle 2
Next J 'prochain élément de la boucle 1
'renvoie dans E3 redimensionnée le tableau TS transposé
OC.Range("E3").Resize(UBound(TMP) + 1, 1).Value = Application.Transpose(TS)
End Sub
Rechercher des sujets similaires à "boucle comparaison"