Copie cellules vers fichier sous condition

Bonjour,

J'ai 2 fichiers contenant des listes similaires, mais le second plus récent contient une liste réduite.

J'ai des cellules sur le premier fichier que je souhaite coller sur le second si une cellule de la colonne 1 est présente également dans la colonne 1 du second fichier.

J'ai rédigé ce bout de code qui ne fonctionne pas :

Sub COPIE_SOUS_CONDITION() 
Dim Fichier_Source As String
Dim Fichier_Destination As String
Dim L As String
Dim j As Integer
Dim i As Integer 
Fichier_Source = "123"
Fichier_Destination = "456" 
For i = 1 To 500 Step 1
L = Workbooks(Fichier_Source).Sheets(1).Cells(1, i).Value   
For j = 1 To 500 Step 1    
If   Workbooks(Fichier_Destination).Sheets(1).Cells(j, 1) = L Then    
Workbooks(Fichier_Source).Sheets(1).Cells(i, 8).Copy    
Workbooks(Fichier_Destination).Sheets(1).Cells(j, 8).Paste    
End If    
Next j
Next i
End Sub

Pourriez vous m'aider s'il vous plait?

Merci d'avance

Nemito a écrit :

Bonjour,

J'ai 2 fichiers contenant des listes similaires, mais le second plus récent contient une liste réduite.

J'ai des cellules sur le premier fichier que je souhaite coller sur le second si une cellule de la colonne 1 est présente également dans la colonne 1 du second fichier.

J'ai rédigé ce bout de code qui ne fonctionne pas :

Sub COPIE_SOUS_CONDITION() 
Dim Fichier_Source As String
Dim Fichier_Destination As String
Dim L As String
Dim j As Integer
Dim i As Integer 
Fichier_Source = "123"
Fichier_Destination = "456" 
For i = 1 To 500 Step 1
L = Workbooks(Fichier_Source).Sheets(1).Cells(1, i).Value   
For j = 1 To 500 Step 1    
If   Workbooks(Fichier_Destination).Sheets(1).Cells(j, 1) = L Then    
Workbooks(Fichier_Source).Sheets(1).Cells(i, 8).Copy    
Workbooks(Fichier_Destination).Sheets(1).Cells(j, 8).Paste    
End If    
Next j
Next i
End Sub

Pourriez vous m'aider s'il vous plait?

Merci d'avance

Bonjour,

à mon avis tu as une erreur dans cette ligne (tu devrais inverser le 1 et le i, i état sans doute le numéro de ligne et 1 le numéro de colonne), mais comme tu ne nous donnes pas le fichier difficile de savoir....

L = Workbooks(Fichier_Source).Sheets(1).Cells(1, i).Value   

Bonjour,

Merci d'avoir pris le temps de regarder.

Effectivement c'est une erreur. Mais ça ne fonctionne toujours pas. Je joins les 2 fichiers à titre d'exemple. Il faut remplir la colonne H du 456 avec les comments de la colonne H du 123.

Merci d'avance.

23123.xlsx (8.56 Ko)
17456.xlsx (8.31 Ko)

bonjour,

code adapté (sans trop changer ta logique)

Sub COPIE_SOUS_CONDITION()
    Dim Fichier_Source As String
    Dim Fichier_Destination As String
    Dim L As String
    Dim j As Integer
    Dim i As Integer
    Fichier_Source = "123.xlsx"
    Fichier_Destination = "456.xlsx"
    For i = 1 To 500
        L = Workbooks(Fichier_Source).Sheets(1).Cells(i, 1).Value
        If L <> "" Then
            For j = 1 To 500
                If Workbooks(Fichier_Destination).Sheets(1).Cells(j, 1) = L Then
                    Workbooks(Fichier_Destination).Sheets(1).Cells(j, 8)=Workbooks(Fichier_Source).Sheets(1).Cells(i, 8)     
                End If
            Next j
        End If
    Next i
End Sub

C'est parfait! Un très grand merci!

Rechercher des sujets similaires à "copie fichier condition"