macro avec .find qui fonctionne pas à pas mais pas en mode normal
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 :oops:), 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!:?:calim2:
Je ne comprends pas pourquoi.
A toute fin utile voici le code rédigé dans le userform
Code:
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 |
Merci à vous tous pour votre aide et très bonne soirée.