Recherche sur toutes les cellules

ryadus

XLDnaute Junior
Bonjour,
J'ai fait un petit code pour rechercher des mots dans mon classeur puis il me retourne les résultats sous forme de liens.
il me trouve les mots et me les affiches en forme de liens hypertexte.
Cependant la recherche ce fait uniquement sur la premieres colone de chaque feuille.

Pouvez m' aidez a faire en sorte qu'il cherche sur toutes les cellules de chaque feuilles.
Merci

Code:
Sub recherche_Click(mot)
Dim plage As Range
ligne = 9
For Each ws In Sheets
If ws.Name <> "Search Item" Then
For n = 1 To ws.Range("A65536").End(xlUp).Row
 If InStr(UCase(ws.Range("A" & n)), UCase(mot)) <> 0 Then
   Sheets("Search Item").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 ("No " & mot & " found in the file")
End Sub
 

GIBI

XLDnaute Impliqué
Re : Recherche sur toutes les cellules

Bonjour,

avec une petite modification : recherche de la dernière cellule renseignée d'un onglet et bouclage sur chaque cellule (ligne, colonne)

Code:
Sub recherche_Click(mot)
    Dim plage As Range, L As Long, C As Long
   
    ligne = 9
    For Each WS In Sheets
        If WS.Name <> "Search Item" Then

            For L = 1 To WS.Range("A1").SpecialCells(xlCellTypeLastCell).Row
                For C = 1 To WS.Range("A1").SpecialCells(xlCellTypeLastCell).Column
                    If InStr(UCase(WS.Cells(L, C)), UCase(mot)) <> 0 Then
                        Sheets("Search Item").Cells(ligne, 1).Hyperlinks.Add Anchor:=Sheets("Search Item").Cells(ligne, 1) _
                                                                                     , Address:="", SubAddress:=WS.Name & "!" & Cells(L, C).Address, TextToDisplay:=WS.Cells(L, C).Value
                        ligne = ligne + 1
                        trouve = True
                    End If
                Next C
            Next L
        End If
    Next WS
    If Not trouve Then MsgBox ("No " & mot & " found in the file")
End Sub

c'est tout

GIBI

PS : Il a raison JOB75 pourquoi faire compliqué quand on peut faire simple

Code:
    For Each ws In Sheets
        If ws.Name <> "Search Item" Then
            For Each Cellule In ws.UsedRange
                If InStr(UCase(Cellule), UCase(mot)) <> 0 Then
                    Sheets("Search Item").Cells(ligne, 1).Hyperlinks.Add Anchor:=Sheets("Search Item").Cells(ligne, 1) _
                                                                                 , Address:="", SubAddress:=ws.Name & "!" & Cellule.Address, TextToDisplay:=Cellule.Value
                    ligne = ligne + 1
                    trouve = True
                End If
            Next
        End If

    Next
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
321
Réponses
1
Affichages
164

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87