XL 2010 recherche de mot sur plusieurs feuilles et non pas sur le classeur entier

  • Initiateur de la discussion Initiateur de la discussion THIRY
  • 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 !

THIRY

XLDnaute Nouveau
Bonjour à toutes et à tous
je cherche à modifier une macro de façon a faire une recherche sur une feuille ( index ) précise et pas sur le classeur entier.
merci beaucoup

Sub recherche(mot)
Dim plage As Range
ligne = 110
For Each ws In Sheets
If ws.Name <> "index" Then
For n = 1 To ws.Range("A65536").End(xlUp).Row
If InStr(UCase(ws.Range("a" & n)), UCase(mot)) <> 0 Then
Sheets("index").Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
ws.Name & "!a" & n, TextToDisplay:=ws.Range("a" & n).Value
ligne = ligne + 1
trouve = True
End If
Next n
End If
Next ws
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub
 
Bonjour Thiry.

VB:
Sub recherche(mot)
Dim plage As Range
ligne = 110
With Sheets("index")
For n = 1 To .Range("A65536").End(xlUp).Row
If InStr(UCase(.Range("a" & n)), UCase(mot)) <> 0 Then
.Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
.Name & "!a" & n, TextToDisplay:=.Range("a" & n).Value
ligne = ligne + 1
trouve = True
End If
Next n
End With
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub

A tester, les .Select sont à éviter.
 
Bonsoir le fil, le forum

Une petite variante (macro avec paramètres)
VB:
Sub test()
'on choisit la feuille et le mot
recherche Sheets("index"), "titi"
End Sub

Private Sub recherche(Feuille As Worksheet, mot As String)
With Feuille
.Activate
For n = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If InStr(UCase(.Range("a" & n)), UCase(mot)) <> 0 Then
.Cells(n, 1).Hyperlinks.Add Anchor:=.Cells(n, 1), Address:="", SubAddress:= _
.Name & "!a" & n, TextToDisplay:=.Range("a" & n).Value
trouve = True
End If
Next n
End With
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub
 
Bonjour Thiry.

VB:
Sub recherche(mot)
Dim plage As Range
ligne = 110
With Sheets("index")
For n = 1 To .Range("A65536").End(xlUp).Row
If InStr(UCase(.Range("a" & n)), UCase(mot)) <> 0 Then
.Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
.Name & "!a" & n, TextToDisplay:=.Range("a" & n).Value
ligne = ligne + 1
trouve = True
End If
Next n
End With
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End Sub

A tester, les .Select sont à éviter.
 
Bj
j'ai enregistré le classeur, fermé puis ouvert et testé.
je suis dls je ne suis pas un pro des macros mais dans ma feuille de recher il sort toutes les cellules ( peut'on faire une exception pour les feuilles ( menu : vent : stat ) Merci 🙂
 
Bonsoir :

VB:
Sub recherche(mot)
Dim ws as worksheet
Set ws = worksheets("index")
Dim plage As Range
ligne = 110

for i = 1 To ws.Range("A65536").End(xlUp).Row
    If InStr(UCase(ws.Range("a" & i)), UCase(mot)) <> 0 Then
        ws.Cells(ligne, 1).Hyperlinks.Add Anchor:=ws.Cells(ligne, 1), Address:="", SubAddress:= _
        ws.Name & "!a" & i, TextToDisplay:=ws.Range("a" & i).Value
        ligne = ligne + 1
        trouve = True
    End If
next i

If Not trouve Then
    MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
End if
End Sub

laurent
 
- 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

Discussions similaires

Retour