VBA Copie une ligne sous condition (problème d'incrémentation)

plombiero

XLDnaute Nouveau
Bonjour à tous,

L'idée :
Je cherche à copier des cellules d'une même ligne sous double condition.
J'ai deux feuilles : "Feuilcalcul" et "Conso" sur le même classeur

Comment je voudrais que ça marche :
Je veux que la macro teste si deux valeurs de deux colonnes différentes d'une même ligne d'une même feuille de calcul (n°1) sont égales à deux valeurs de deux colonnes différentes se trouvant sur la même ligne d'une autre feuille de calcul (n°2) alors, les infos de la ligne sur ma feuille n°2 vient compléter les infos sur ma feuille 1.

Pour faire simple, je souhaite que cela fasse comme ça (mais je souhaite prédéfinir moi-même les colonnes de test) :
Code:
Feuille 1 :

    A             B        C         D
Pierre         Durand   (Vide)     (Vide)
Paul           Martin   (Vide)     (Vide)
Jack           Baüer    (Vide)     (Vide)
Maurice        Dupont   (Vide)     (Vide)

Feuille 2 :

    A            B          C         D
Pierre         Durand     55ans    1m75
Maurice        Dupont     56ans    1m72

Alors


Feuille 1 :

    A            B          C         D
Pierre         Durand   55ans     1m75
Paul           Martin   (Vide)    (Vide)
Jack           Baüer    (Vide)    (Vide)
Maurice        Dupont   56ans     1m72

Comment ça fonctionne actuellement :

Cela copie une ligne sur deux, c'est-à-dire que j'ai l'impression que le code saute une ligne à chaque fois. J'ai bien essayé de modifier les paramètres des variables "i" et "j" mais je n'arrive à rien.

Code:
Sub Copy_donnees_fiches()
'Cette Macro sert à copier les données des fiches erreurs pour les intégrer en commentaires
Dim i, j As Integer

i = 2
j = 2

derlig = Worksheets("Feuilcalcul").Range("D" & Cells.Rows.Count).End(xlUp).Row
derligb = Worksheets("Conso").Range("M" & Cells.Rows.Count).End(xlUp).Row

For i = 2 To derlig

    For j = 2 To derligb
        If Worksheets("Conso").Range("M" & j).Value = Worksheets("Feuilcalcul").Range("D" & i).Value And Worksheets("Conso").Range("H" & j).Value = Worksheets("Feuilcalcul").Range("C" & i).Value Then
        Worksheets("Conso").Range("T" & j).Value = Worksheets("Feuilcalcul").Range("E" & i).Value
        Worksheets("Conso").Range("U" & j).Value = Worksheets("Feuilcalcul").Range("F" & i).Value
        Worksheets("Conso").Range("V" & j).Value = Worksheets("Feuilcalcul").Range("G" & i).Value
        Worksheets("Conso").Range("W" & j).Value = Worksheets("Feuilcalcul").Range("H" & i).Value
        Worksheets("Conso").Range("X" & j).Value = Worksheets("Feuilcalcul").Range("I" & i).Value
        Worksheets("Conso").Range("Y" & j).Value = Worksheets("Feuilcalcul").Range("J" & i).Value
        Worksheets("Conso").Range("Z" & j).Value = Worksheets("Feuilcalcul").Range("K" & i).Value
        Worksheets("Conso").Range("AA" & j).Value = Now
    End If
    
    j = j + 1
    
    Next j
        
i = i + 1

Next i
Worksheets("conso").Select

End Sub

N'importe quelle aide est la bienvenue :)

Merci d'avance !

Damien
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 304
dernier inscrit
halo palo