Bonjour, voici mon premier message sur le site parce que je n'arrive pas à m'en sortir avec ces quelques lignes de codes, malgré toutes mes recherches... Merci par avance pour votre support!
J'essaie d'utiliser le code disponible ici : http://boisgontierjacques.free.fr/fi...000Lignes.xlsm pour réaliser une recherche matricielle entre 1 base de plus de 65000 lignes et plusieurs feuilles de plusieurs milliers de lignes que je souhaite importer une par une.
Or, à chaque import, toutes les cellules du champ résultat qui n'ont pas de clé correspondante dans la table source sont écrasées. J'aimerais conserver les données précédemment importées et donc que le code ignore les cellules non vides.
Sauriez-vous où insérer cette condition?
Merci!
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub AppelSub() Set TableSource = Range("A2:B1200") ' champ table source Set ClésCherchées = Range("I2:I68000") ' champ des clés recherchées Set Résultat = Range("J2:J68000") ' champ résultat colResult = 2 Rechv ClésCherchées, TableSource, 2, Résultat End Sub Sub Rechv(ClésCherchées, TableSource, colRésult, Résultat) Application.ScreenUpdating = False Set d = CreateObject("Scripting.Dictionary") a = TableSource.Value ' table source b = ClésCherchées.Value ' table des clés recherchées For i = LBound(a) To UBound(a) d(a(i, 1)) = a(i, colRésult) Next i Dim temp() ReDim temp(LBound(b) To UBound(b), 1 To 1) For i = LBound(b) To UBound(b) If d(b(i, 1)) <> "" Then temp(i, 1) = d(b(i, 1)) Else temp(i, 1) = "" Next i Résultat.Value = temp End Sub
Partager