VBA-comparer deux fichiers excel sur une colonne et ajouter des lignes d'un fichier vers l'autre
Bonsoir,
Je viens vers vous pour un problème en VBA. J'ai deux fichiers contenant chacun une base de données d'équipement : le premier document A est mon doc excel référent, le second doc B est un doc excel extrait d'un logiciel qui me sert a mettre a jour le doc référent A.
Mon but est de comparer une colonne (référence équipement) pour que les produits du doc B qui ne sont pas sur mon doc A soient copiés à la suite.
J'ai donc fait le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub MAJequipement()
'decla variables
Dim wbmaj As Workbook 'fichier mis a jour
Dim wba As Workbook 'fichier que je souhaite mettre a jour
Dim wsmaj As Worksheet 'feuille du fichier a jour
Dim wsa As Worksheet 'feuille du fichier a mettre a jour
Dim c As Range 'cellule parcourant le fichier a jour
Dim tr As Range 'cellule parcourant le fichier a mettre a jour
Dim PLR As Range 'plage référente feuille mise a jour
Dim PLS As Range 'plage du fichier a mettre a jour
Dim derl As Long 'derniere ligne de la feuille a mettre a jour
'affiliation des variables fichiers excel et ouverture des fichiers
Application.Workbooks.Open ("C:\Users\axel.loiacono\Desktop\Axel.xlsx")
Application.Workbooks.Open ("C:\Users\axel.loiacono\Desktop\Axel2.xlsx")
Set wbmaj = Workbooks("Axel2.xlsx")
Set wba = Workbooks("Axel.xlsx")
'nouvelles données colonne A pour effectuer MAJ
Set wsmaj = wbmaj.Worksheets(1)
Set PLR = wsmaj.Columns(1)
'données colonne A actuelles
Set wsa = wba.Worksheets(1)
Set PLS = wsa.Columns(1)
With PLR
For Each c In PLR
Set tr = PLS.Cells.Find(c.Value)
If tr Is Nothing Then
Windows("Axel2.xlsx").Activate
PLR.c.EntireRow.Copy
Windows("Axel.xlsx").Activate
derl = PLS.End(xlUp).Row + 1 'je met la variable derl ici pour la redefinir a chaque boucle
Cells(derl, 1).Select
ActiveSheet.Paste
End If
Next c
End With
End Sub |
Aucun bug mais rien ne marche, je m’emmêle avec les activations de documents etc ... il doit y avoir une énormité niveau logique et j'ai besoin d'un regard neuf
Merci beaucoup et bonne soirée !
Axel