Copier coller une nouvelle valeur detectée sur un autre classeur
Bonjour,
Je souhaite faire une macro qui me permet de comparer une liste de valeur d'un classeur (A) par rapport à un autre classeur (B) qui est le fichier de donnée source qui contient ces memes valeurs.
1) C'est une question bête mais je voudrais savoir comment faire s'il détecte une nouvelle valeur dans (B) et de le recopier dans (A) dans la dernière cellule non vide. dans le elseif
2) D'ajouter le nom de l'item dans la msgbox.
Sub MaJPerimetre()
Dim curr_wb As Workbook
Dim wb As Workbook
Dim perimetre As Worksheet
Dim commande As Worksheet
Dim path As String
Dim nom_fich As String
Dim i As Integer
dim j as integer
Set curr_wb = ThisWorkbook
commande = curr_wb.Sheets("commande1")
path = curr_wb.Sheets("pilotage").Cells(11, 2)
nom_fich = Dir(path)
Workbooks.Open path & nom_fich
Set wb = Application.ActiveWorkbook
For i = 2 To commande.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To wb.Sheets("commande1_maj").Cells(Rows.Count, 1).End(xlUp).Row
If wb.Sheets("commande1_maj"").Cells(j, 1) = isin.Cells(i, 1) And wb.Sheets("commande1_maj").Cells(j, 3) = "Oui" Then
commande.Cells(i, 8) = "validé"
ElseIf wb.Sheets("commande1_maj").Cells(j, 1) <> commande.Cells(i, 1) Then
msgbox " Un nouveau Item ( nom de l'item) a été ajouté à la commande"
End If
Next
j = j + 1
Next
End Sub
Bonjour,
Un essai ...
S'il faut coller dans A ou ajuster au besoin ...
commande.Cells(Rows.Count, "A").End(xlUp).Row 1 = wb.Sheets("commande1_maj").Cells(j, 1)
ric
Bonjour à tous,
Juste une démo qui compare 2 fichiers et ajoute les items manquants dans la liste, ici sans double boucle "i,j" de comparaison.
Sub compare()
Dim T As Variant, i As Integer, S As String
With Sheets("Feuil1")
T = T_LireB(ThisWorkbook.Path & "\" & .Range("E1").Value)
.Range("X1").Resize(UBound(T, 1), UBound(T, 2)) = T
T = T_Compare
.Range("X1:X10000").ClearContents
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).Resize(UBound(T, 1), UBound(T, 2)) = T
End With
S = "Références manquantes dans fichier actif :" & vbCrLf
For i = 1 To UBound(T)
S = S & T(i, 1) & vbCrLf
Next i
MsgBox S
End Sub
Les 2 fichiers sont à placer dans un même dossier
Pierre