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

  • Initiateur de la discussion Initiateur de la discussion plombiero
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
241
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
3
Affichages
582
Réponses
0
Affichages
460
Réponses
7
Affichages
797
Retour