Bonjour
J'ai incorporé la fonction diff de Boisgonthier dans une macro, mais je ne réussi pas à transférer le résultat sur la feuille
si la fonction est appliquée directement sur la feuille c'est bon
Mais incorporée dans un code
erreur byref si changée byval plus de message mais pas d'affichage
c'est une matricielle donc c;offset'0,5) = evaluate(diff(plage_1,Plage_2)
Différence entre 2 listes
Dans un module (alt+F11 Insertion/Module)
Function Diff(champ1 As Range, champ2 As Range)
Set MonDico1 = CreateObject("Scripting.Dictionary")
a = champ1.Value
b = champ2.Value
For Each c In b: MonDico1(c) = c: Next c
Set mondico2 = CreateObject("Scripting.Dictionary")
For Each c In a
If Not MonDico1.Exists(c) Then mondico2(c) = c
Next c
Dim d()
ReDim d(1 To Application.Caller.Rows.Count)
i = 1
For Each c In mondico2.items
d(i) = c
i = i + 1
Next c
Diff = Application.Transpose(d)
End Function
merci
J'ai incorporé la fonction diff de Boisgonthier dans une macro, mais je ne réussi pas à transférer le résultat sur la feuille
si la fonction est appliquée directement sur la feuille c'est bon
Mais incorporée dans un code
erreur byref si changée byval plus de message mais pas d'affichage
c'est une matricielle donc c;offset'0,5) = evaluate(diff(plage_1,Plage_2)
Différence entre 2 listes
Dans un module (alt+F11 Insertion/Module)
Function Diff(champ1 As Range, champ2 As Range)
Set MonDico1 = CreateObject("Scripting.Dictionary")
a = champ1.Value
b = champ2.Value
For Each c In b: MonDico1(c) = c: Next c
Set mondico2 = CreateObject("Scripting.Dictionary")
For Each c In a
If Not MonDico1.Exists(c) Then mondico2(c) = c
Next c
Dim d()
ReDim d(1 To Application.Caller.Rows.Count)
i = 1
For Each c In mondico2.items
d(i) = c
i = i + 1
Next c
Diff = Application.Transpose(d)
End Function
merci