Bonjour à tous.
Je suis coincé par quelque chose que je ne comprends pas.
J'ai regardé comment fonctionne .find et je remercie le forum pour les informations précieuses.
Je sais ce bout de code n'est pas optimisé, ni bien rédigé (pique même très probablement les yeux), j'ai de plus remplacé les is nothing par des "" ou pas non, mais mon problème existait aussi bien avec la rédaction is nothing (je la reprendrai comme cela par la suite).
Pour vous expliquer un peu plus le problème.
J'ai un userform et une base de données. Je veux via une textbox saisir la donnée que je cherche, et que les résultats trouvés sur les différentes lignes ainsi que les données des colonnes sur ces mêmes lignes soient inscrit dans une listbox.
Quand je déroule pas à pas via F8 le code, tout se passe très bien et j'ai les résultats attendus qui s'écrivent.
Malheureusement quand je lance le userform sans passer par un point d’arrêt ou par le pas à pas ça bug!
Je ne comprends pas pourquoi.
A toute fin utile voici le code rédigé dans le userform
Merci à vous tous pour votre aide et très bonne soirée.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Private Sub rec_Click() Dim trouvecellule As Range Dim premadresse As String Dim myarray7(5000, 5) As Variant h = 0 With Worksheets("feuil1").Range("D2:D5000") Set trouvecellule = .Find(reparnom.Value) If trouvecellule <> "" Then premadresse = trouvecellule.Address End If Do Until trouvecellule = "" t = trouvecellule.Row myarray7(h, 0) = Cells(t, 4) myarray7(h, 1) = Cells(t, 5) myarray7(h, 2) = Cells(t, 6) myarray7(h, 3) = Cells(t, 8) myarray7(h, 4) = t Set trouvecellule =Range("D1:D5000").FindNext(after:=trouvecellule) If trouvecellule.Address = premadresse Then GoTo 2 End If h = h + 1 Loop End With 2 resu.ColumnCount = 5 resu.ColumnWidths = "60;280;200;320,15" resu.List() = myarray7 End Sub
Partager