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.

3classeur-1.xlsx (36.63 Ko)
3classeur-2.xlsx (35.36 Ko)

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.

Rechercher des sujets similaires à "valeur commune copier coller"