`Sub Update_data()
Dim Bk1 As Workbook
Dim Bk2 As Workbook
Dim Rng1 As Range
Workbooks("Book1").Activate 'indicate wb name1 here
Set Bk1 = ActiveWorkbook
Workbooks("Book2").Activate 'indicate wb name2 here
Set Bk2 = ActiveWorkbook
Bk1.Activate
Set Rng1 = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2))
Rng1.Copy
Cells(1, 26).PasteSpecial Paste:=xlPasteValues
Cells(1, 26).AutoFilter
ActiveWorkbook.ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Rng1.Offset(0, 25), SortOn:=xlSortOnValues, Order:=xlAscending
Cells(1, 26).AutoFilter
Rng1.Offset(0, 25).RemoveDuplicates Columns:=1, Header:=xlYes
Rng1.Offset(1, 25).NumberFormat = "m/d/yyyy"
Dim i As Integer
For i = 2 To Cells(Rows.Count, 26).End(xlUp).Row
Dim x As String
x = Cells(i, 26).Value
Bk2.Activate
Dim y As Integer
On Error Resume Next
y = WorksheetFunction.Match(x, Bk2.Worksheets(1).Columns(1))
Bk2.Worksheets(1).Cells(y, 2) = Bk1.Worksheets(1).Cells(i, 27)
Bk1.Activate
Next i
Rng1.Offset(0, 25).ClearContents`
Veuillez m'aider avec une macro VBA pour réaliser ce qui suit.
J'ai deux classeurs - classeur 1 et classeur 2.
Le WB 1 est l'endroit où les données sont saisies. WB 2 est la base de données. (Il n'y a pas de doublons dans ce WB).
A partir de WB1 S'il y a des doublons dans la colonne A, vérifiez si les valeurs correspondantes dans la colonne B sont la valeur minimale des doublons.
Ensuite, copiez les cellules A et B correspondantes dans lesquelles B a la valeur minimale avec les autres données de la colonne A et B et faites correspondre la colonne A de WB1 avec la colonne A de WB2 ; si une correspondance est trouvée, collez la valeur minimale trouvée parmi les doublons de la colonne B de WB1 dans la colonne B de WB2 avec les autres données originales des colonnes A et B de WB1.
J'ai pu réaliser ce qui précède avec le code ci-joint créé par MAX,
mais j'ai trouvé une petite erreur en testant. Si le WB 2 (base de données) est dans l'ordre croissant, alors la macro fonctionne bien, mais si le WB 2 (base de données) n'est pas dans l'ordre ou mélangé, alors il laisse certaines des cellules vides dans la colonne B du WB 2.
J'ai également essayé d'entrer des données sans doublons dans WB1 (capture de données col A) et il est retourné avec des données incorrectes (date - col B) dans WB 2.
J'ai joint l'image d'exemple pour votre examen.