2017-07-07 4 views
0

J'ai donc deux fichiers. Fichier1 et Fichier2. Les deux ont les mêmes colonnes mais l'une est remplie et l'autre non. Ce que je veux faire s'il y a une correspondance de nom (supposons A1) de File2 dans une rangée de File1 copie les rangées Q, R et S dans File2. Donc si A1 (de Fichier2) se trouve dans Une ligne de Fichier1 (Supposons A34) alors je veux copier Q34, R34 et S34 de Fichier1 vers Fichier2.Comparer deux fichiers Excel différents et copier des données de l'un à l'autre si les conditions se sont rencontrées

Je pense que VLOOKUP serait nécessaire pour la première partie, donc je pense que cela devra être incorporé dans le VBA. Toute aide, idée ou direction générale vers laquelle je devrais me diriger serait fantastique.

Répondre

0

Cela devrait faire ce que vous cherchez. Placez la macro dans le classeur qui contient toutes les colonnes remplies et modifiez le lien chemin vers le deuxième fichier de classeur sur lequel vous souhaitez copier des données. Vous devrez peut-être également modifier le nom de la feuille de "Sheet1" si le nom de votre feuille est différent.

Sub copyOnMatch() 


Dim i As Long 
Dim j As Long 
Dim wbk1, wbk2 As Workbook 

Set wbk1 = ThisWorkbook.Sheets("Sheet1") 
WBK1Range = wbk1.Range("A" & Rows.Count).End(xlUp).Row 
Set wbk2 = Workbooks.Open("Your File Path Here") 'Your Filepath here 
WBK2Range = wbk2.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 

    For j = 1 To WBK1Range 
     For i = 1 To WBK2Range 
      If wbk1.Cells(j, 1).Value = wbk2.Worksheets("Sheet1").Cells(i, 1).Value Then 
       wbk2.Worksheets("Sheet1").Cells(j, 17).Value = wbk1.Cells(i, 17).Value 'Copies over Column Q 
       wbk2.Worksheets("Sheet1").Cells(j, 18).Value = wbk1.Cells(i, 18).Value 'Copies over Column R 
       wbk2.Worksheets("Sheet1").Cells(j, 19).Value = wbk1.Cells(i, 19).Value 'Copies over Column S 
      Else 
      End If 
    Next i 
Next j 



End Sub 
+0

Merci beaucoup pour votre réponse. Je vais vérifier ça. – Anti21