Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

ryadus

XLDnaute Junior
Re : Recherche sur toutes les cellules

GIBI, j'ai essayé ton code et sa marche, mais sur certain liens (resultats) il me sort l'erreur "Reference is not valid" et sur certain le lien fonction.

Qu'en pensez vous?

Merci
 

Discussions similaires

Réponses
7
Affichages
334
Réponses
1
Affichages
177
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…