Valeur commune = copier/coller
Bonjour à tous,
Mon problème est le suivant :
J'ai deux classeurs en pièce jointe. Classeur 1 = fichier destinataire / Classeur 2 = fichier source.
Je n'ai pas réussi à créer un code pour :
1) A partir du Classeur 2, identifier les codes (colonne B) + semaines (colonne C) en commun avec le Classeur 1
2) S'il y'a des codes + semaines en commun alors copier les données en colonne D et E du Classeur 2 et les coller en colonne D et E du Classeur 1
Ma connaissance des macros se limitent à l'enregistrement et je n'ai pas réussi à avoir un résultat satisfaisant.
Pourriez-vous stp m'aider sur ce point ?
En vous remerciant par avance pour votre aide.
Bonsoir,
Sub Maj()
Dim d As Object, k, itm, aa, i%
Set d = CreateObject("Scripting.Dictionary")
aa = Workbooks("Classeur 2.xlsx").Worksheets(1).Range("B2").CurrentRegion.Value
For i = 2 To UBound(aa)
k = aa(i, 1) & "_" & aa(i, 2)
itm = Array(aa(i, 3), aa(i, 4))
d(k) = itm
Next i
With ThisWorkbook.Worksheets(1).Range("B2").CurrentRegion
aa = .Value
For i = 2 To UBound(aa)
k = aa(i, 1) & "_" & aa(i, 2)
If d.exists(k) Then
itm = d(k)
aa(i, 3) = itm(0): aa(i, 4) = itm(1)
End If
Next i
.Value = aa
End With
End Sub
Procédure qu'il te faudra placer dans un module standard du Classeur 1, lequel sera alors à enregistrer en .xlsm, et tu pourras à ta convenance affecter la macro à un bouton...
Les deux classeurs sont supposés ouverts.
Et comme tu peux le constater, il n'y a ni copier ni coller !
Cordialement.