bonjour le forum et merci d'avance,
je fais une recherche dans un classeur assez volumineux sur le même principe que RECHERCHER ctrl+f
avec le code suivant
Macro 1
Dim WB1 As Workbook
Dim MyArray() As String
Dim i As Integer, X As Byte
Set WB1 = ThisWorkbook
For i = 1 To Sheets.Count
ReDim Preserve MyArray(X)
MyArray(X) = Sheets(i).Name
X = X + 1
Next
WB1.Worksheets(MyArray).Select
Cells.Select
Macro 2
With UserForm2
Dim vvv As String
vvv = UserForm2.TextBox1.Value
On Error Resume Next
Selection.Find(What:=(vvv), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End With
la macro 1 pour sélectionner tout le classeur
la macro 2 pour faire la recherche
jusqu'ici tout se passe bien.
ensuite avec la macro 3 je veux accéder au résultat suivant
Macro 3
on error resume next
Selection.FindNext(After:=ActiveCell).Activate
et là, cela marche sur la feuille seulement arriver au dernier résultat sur la feuille on revient au premier sur la même feuille.
D'où deux questions:
la première : pourquoi si je ne mets pas de "error resume next "desfois ça plante mais desfois pas ?
deuxièmement pourquoi cela ne va t'il pas à la prochaine occurence trouvé
enfin vous l'aurez compris , plus que le pourquoi, comment faire pour que cela fonctionne (et vu mon niveau je tourne en rond)?
merci d'avance
bonne fin de journée à tous
je fais une recherche dans un classeur assez volumineux sur le même principe que RECHERCHER ctrl+f
avec le code suivant
Macro 1
Dim WB1 As Workbook
Dim MyArray() As String
Dim i As Integer, X As Byte
Set WB1 = ThisWorkbook
For i = 1 To Sheets.Count
ReDim Preserve MyArray(X)
MyArray(X) = Sheets(i).Name
X = X + 1
Next
WB1.Worksheets(MyArray).Select
Cells.Select
Macro 2
With UserForm2
Dim vvv As String
vvv = UserForm2.TextBox1.Value
On Error Resume Next
Selection.Find(What:=(vvv), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End With
la macro 1 pour sélectionner tout le classeur
la macro 2 pour faire la recherche
jusqu'ici tout se passe bien.
ensuite avec la macro 3 je veux accéder au résultat suivant
Macro 3
on error resume next
Selection.FindNext(After:=ActiveCell).Activate
et là, cela marche sur la feuille seulement arriver au dernier résultat sur la feuille on revient au premier sur la même feuille.
D'où deux questions:
la première : pourquoi si je ne mets pas de "error resume next "desfois ça plante mais desfois pas ?
deuxièmement pourquoi cela ne va t'il pas à la prochaine occurence trouvé
enfin vous l'aurez compris , plus que le pourquoi, comment faire pour que cela fonctionne (et vu mon niveau je tourne en rond)?
merci d'avance
bonne fin de journée à tous