Renvoyer une valeur non trouvée dans une liste

Attila451

XLDnaute Occasionnel
Bonsoir,
J'ai une liste et je veux vérifier si les éléments de cette liste sont déjà contenu ou non dans une deuxième liste.
Si ce n'est pas le cas, je veux que la valeur de la 1ere liste soit envoyée à la suite dans la 2ème liste.7
Je n'arrive pas à traduite cela en routine. J'utilise souvent une while/wend, mais pour renvoyer des infos avec des conditions mais là je bloque...

J'utilise une nbval pour déterminer la ère cellule dispo colonne C mais je n'arrive pas à si la valeur colonne A n'est pas trouvée colonne C, la 1ère cellule dispo colonne C récupère cette valeur..

Si quelqu'un pouvait avoir la gentillesse de me traduire ma demande avec une while/wend, ça me ferait une bonne base pour la suite...
Merci d'avance
 

Pièces jointes

  • NE CONTIENT PAS.xlsx
    9.4 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonsoir Attila451,

Cette macro qui utilise des tableaux VBA et le Dictionary est très rapide :
Code:
Sub CompleterListe()
Dim listeA, listeB, d As Object, i&
listeA = [A1].CurrentRegion.Resize(, 2) 'matrice plus rapide, au moins 2 éléments
listeB = [C1].CurrentRegion.Resize(, 2) 'matrice plus rapide, au moins 2 éléments
Set d = CreateObject("Scripting.Dictionary")
'---liste sans doublon---
For i = 2 To UBound(listeA)
    d(listeA(i, 1)) = ""
Next
'---suppression des éléments existants---
For i = 2 To UBound(listeB)
    If d.exists(listeB(i, 1)) Then d.Remove listeB(i, 1)
Next
'---restitution---
If d.Count = 0 Then Exit Sub
[C:C].NumberFormat = "General" 'format Standard, à adapter
[C1].Offset(UBound(listeB)).Resize(d.Count) = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 322
Membres
102 862
dernier inscrit
Emma35400