Re : recherche de toutes les occurrences d'une chaîne de caractères dans un classeur
bonjour,
réponse très intéressante et merci, mais qui ne "cite" malheureusement pas le contenu de la cellule... En appelant par exemple les "présidents", je peux avoir besoin de ne cibler que les "présidents" et pas les "vice-président".
Une copine m'a donné le code suivant que je soumets à la liste car je me demande s'il explre effectivement l'ensemble des onglets d'un classeur et ne dévie pas l'adresse de cellule. Quelqu'un aurait-il le courage (et le talent) de vérifier ?
Merci d'avance
Sub Rechercher_ds_ttes_les_feuilles()
'
' Macro2 Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+R
'Dim Tableau As Variant
Dim Montab As Variant
Dim plage As Range, c As Range
Dim i As Integer, j As Integer, k As Integer, posit As Long, li As Integer, col As Integer, d As Integer, cpt As Integer
Dim str As String
'Set plage = ActiveSheet.Range("a1", Range("a1").SpecialCells(xlCellTypeLastCell))
str = InputBox("Entrer la chaine a rechercher: ")
If str = "" Then Exit Sub
If str <> "" Then
k = 1
Feuille_existe
For cpt = 2 To Worksheets.Count
Worksheets(cpt).Select
li = Range("a1").SpecialCells(xlCellTypeLastCell).Row
col = Range("a1").SpecialCells(xlCellTypeLastCell).Column
ReDim Tableau(li, col)
Tableau = Range(Cells(1, 1), Cells(li, col)).Value
For i = 1 To li
For j = 1 To col
If InStr(LCase(Tableau(i, j)), str) <> 0 Then
k = k + 1
Sheets("Resultat").Cells(k, 1).Value = Worksheets(cpt).Name
Sheets("Resultat").Cells(k, 2).Value = Tableau(i, j)
Sheets("Resultat").Cells(k, 3).Value = Cells(i, j).Address
Else: k = k
End If
Next j
Next i
' Stocker ds Montab les elements filtres par str
Next cpt
End If
If k < 1 Then MsgBox "la Chaine n existe pas dans la plage"
'Else
'---------------------------
'Inserer une feuil de calcul
'For i = 1 To k
'Range("a" & i + 1).Value = Montab(i)
'Next i
'Call Entete
'End If
Sheets("Resultat").Select
Sheets("Resultat").Range("a1").Value = "Onglet"
Sheets("Resultat").Range("b1").Value = "Valeur Cellule"
Sheets("Resultat").Range("C1").Value = "Adresse Cellule"
Columns("C:C").Replace What:="$", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Entete
End Sub