Bonjour labubu,
voici le code VBA de mon post du 7 juillet à 02:42, avec xlPart au lieu de xlWhole (c'est le seul changement) :
Private Sub CommandButton_Click()
Dim celX As Range, chn$, mot$, i%: mot = TextBox1.Text
Application.ScreenUpdating = 0
For i = 1 to Worksheets.Count
Worksheets(i).Select ' obligatoire, pour sélectionner la cellule du mot cherché (s'il sera trouvé)
Set celX = Cells.Find(mot, , xlValues, xlPart)
If celX Is Nothing Then chn = chn & ActiveSheet.Name & vbLf Else celX.Select
Next i
If chn <> "" Then MsgBox "Sheets where search data doesn't exist :" & vbLf & vbLf & chn
End Sub
d'après ce code, au tout début de la boucle For i .. Next i
on va sur chaque feuille avec : Worksheets(i).Select
ensuite, y'a cette instruction : Set celX = Cells.Find(mot, , xlValues, xlPart)
➯ comme y'a pas d'référence explicite de feuille, c'est une recherche sur la feuille active
(cette feuille existe forcément, donc ça peut pas être une erreur de feuille inexistante)
si la recherche ne trouve rien, résultat : Nothing ➯ exécution de cette instruction :
chn = chn & ActiveSheet.Name & vbLf ; comme c'est avant le Else :
le celX.Select n'est pas exécuté ; donc c'est pas là que l'erreur se produit !
si la recherche trouve le mot, résultat : Range de la cellule du mot de la feuille active
➯ exécution de celX.Select ; donc là, j'vois vraiment pas pourquoi ton erreur 1004
se produit : « La méthode Select de la classe range a échoué »
revérifie bien tout, en particulier si y'a pas un deux-points juste après le Else
si y'a : ... Else: celX.Select supprime le « : » et ça sera bon !
si tu as toujours le même problème, envoie-moi ton fichier.
@LouReeD : si t'as une idée d'la cause de l'erreur 1004, c'est pas d'refus !
dhany