Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion francois22
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

francois22

Guest
Bonjour,

Je cherche à effectuer une recherche dans toute les feuilles mais seulement pour une colonne précise ( colonne A )
Je dispose de ce code :

Private Sub CommandButton1_Click()
reponse = InputBox("mot a chercher")
Range("A9:A" & Range("A65536").End(xlUp).Row).ClearContents
Call recherche(reponse)
End Sub


Sub recherche(mot)
ligne = 9
For Each ws In Sheets
If ws.Name <> "page d'ouverture" Then
With ws.Cells
Set c = .Find(mot, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets("feuil1").Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
ws.Name & "!" & c.Address, TextToDisplay:=c.Value
ligne = ligne + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
trouve = True
End If
End With
End If
Next ws
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub


Je pense que la réponse se trouve entre set c = ..... et .find(..) . Mais je ne sais pas comment l'écrire..

Pourriez vous svp me donnez une piste.

Bien cordialement,
Francois
 
Re : fonction .find

Bonjour François, Michel🙂

une autre solution :
Code:
Set c = ws.Columns(1).Find
je t'engage à consulter l'aide vba, notamment la remarque sur l'utilisation des arguments de la méthode "find"...

bon après midi
@+

Edition : un point en trop dans le code....
 
Dernière édition:
Re : fonction .find

Bonjour,

Je vous remercie pour vos réponses rapides.
En cherchant un peu cette nuit j'ai utilisé :
....
With ws.Cells.Columns("A:A")
Set c = .Find(mot, LookIn:=xlValues, LookAt:=xlPart)
.....
et cela marche trés bien.

Une question suplémentaire :

Je souhaite exclure un feuille dans ma recherche . Par exemple la feuille 1. Celle où s'afiche les résultats. Cela éviterai au programme de tourner en rond..
Comment s'écrit "l'exclusion" dans ce cas là ?

Bien cordialement,
Francois
 
Re : fonction .find

Salut francois22, le Fil

Apparemment tu as déjà exclus la page d'ouverture dans ton code initial

If ws.Name <> "page d'ouverture" Then
si ce n'est pas la même feuille il faut l'ajouter

Code:
Sub recherche(mot)
ligne = 9
For Each ws In Sheets
If ws.Name <> "Page d'ouverture" And ws.Name <> "Feuil1" Then
With ws.Columns(2) ' 1 Pour la Colonne A, 2 pour la Colonne B etc...
Set c = .Find(mot, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets("feuil1").Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
ws.Name & "!" & c.Address, TextToDisplay:=c.Value
ligne = ligne + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
trouve = True
End If
End With
End If
Next ws
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub
Bonne Journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…