OVH Cloud OVH Cloud

recherche de champs

2 réponses
Avatar
Emcy
Bonjours,

Sous EXCEL 97, je voudrais rechercher un mot dans toutes les cellules de
toutes les feuilles de mon classeur.
Ensuite je voudrais mettre la valeur complète de la cellule où le mot à été
trouvé dans une "zone de liste"
Pour finir, il faudrait que lorsque je clique sur une des valeurs de la
"zone de liste" , la cellule concernée soit selectionnée

Quelle est la meilleur méthode ?

2 réponses

Avatar
AV
Le principe : rajout d'une feuille qui va "stocker" les infos
En supposant que tu aies une Combobox en Feuil1

Dans un module ordinaire et pour la valeur "fifi" à chercher dans toutes les
feuilles

Sub Cherche_Fifi_Eperdument()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("LIST").Delete
Sheets.Add.Name = "LIST": x = 2
[A1] = "lesOccurrences": [B1] = "lesFeuilles": [C1] = "lesCellules"

Dim PremCell As String
Dim Cell As Range
For Each Sh In ActiveWorkbook.Worksheets
If Sh.Name = "LIST" Then GoTo suite:
Set Cell = Sh.Cells.Find("fifi")
If Not Cell Is Nothing Then
PremCell = Cell.Address
Do
With Sheets("LIST")
.Cells(x, 1) = Cell.Value
.Cells(x, 2) = Sh.Name
.Cells(x, 3) = Cell.Address
End With
Set Cell = Sh.Cells.FindNext(Cell)
x = x + 1
Loop Until Cell.Address = PremCell
End If
suite:
Next
If x = 2 Then Exit Sub 'pas d'occurrence trouvée

Application.EnableEvents = False
[A1].CurrentRegion.CreateNames Top:=True, Left:úlse
Application.EnableEvents = True
Sheets("Feuil1").Select
End Sub

Dans le module de Feuil1 (contenant combobox1) :

Private Sub ComboBox1_Change()
x = ComboBox1.ListIndex + 1
z = Application.Index([lesFeuilles], x)
w = Application.Index([lesCellules], x)
Sheets(z).Select
ActiveSheet.Range(w).Select
End Sub

AV

"Emcy" a écrit dans le message news:

Bonjours,

Sous EXCEL 97, je voudrais rechercher un mot dans toutes les cellules de
toutes les feuilles de mon classeur.
Ensuite je voudrais mettre la valeur complète de la cellule où le mot à été
trouvé dans une "zone de liste"
Pour finir, il faudrait que lorsque je clique sur une des valeurs de la
"zone de liste" , la cellule concernée soit selectionnée

Quelle est la meilleur méthode ?




Avatar
Emcy
Merci, je vais pas utiliser exactemment ta méthode mais je vais m'en
inspirer très fortement


"AV" a écrit dans le message de
news:
Le principe : rajout d'une feuille qui va "stocker" les infos
En supposant que tu aies une Combobox en Feuil1

Dans un module ordinaire et pour la valeur "fifi" à chercher dans toutes
les

feuilles

Sub Cherche_Fifi_Eperdument()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("LIST").Delete
Sheets.Add.Name = "LIST": x = 2
[A1] = "lesOccurrences": [B1] = "lesFeuilles": [C1] = "lesCellules"

Dim PremCell As String
Dim Cell As Range
For Each Sh In ActiveWorkbook.Worksheets
If Sh.Name = "LIST" Then GoTo suite:
Set Cell = Sh.Cells.Find("fifi")
If Not Cell Is Nothing Then
PremCell = Cell.Address
Do
With Sheets("LIST")
.Cells(x, 1) = Cell.Value
.Cells(x, 2) = Sh.Name
.Cells(x, 3) = Cell.Address
End With
Set Cell = Sh.Cells.FindNext(Cell)
x = x + 1
Loop Until Cell.Address = PremCell
End If
suite:
Next
If x = 2 Then Exit Sub 'pas d'occurrence trouvée

Application.EnableEvents = False
[A1].CurrentRegion.CreateNames Top:=True, Left:úlse
Application.EnableEvents = True
Sheets("Feuil1").Select
End Sub

Dans le module de Feuil1 (contenant combobox1) :

Private Sub ComboBox1_Change()
x = ComboBox1.ListIndex + 1
z = Application.Index([lesFeuilles], x)
w = Application.Index([lesCellules], x)
Sheets(z).Select
ActiveSheet.Range(w).Select
End Sub

AV

"Emcy" a écrit dans le message news:

Bonjours,

Sous EXCEL 97, je voudrais rechercher un mot dans toutes les cellules de
toutes les feuilles de mon classeur.
Ensuite je voudrais mettre la valeur complète de la cellule où le mot à
été


trouvé dans une "zone de liste"
Pour finir, il faudrait que lorsque je clique sur une des valeurs de la
"zone de liste" , la cellule concernée soit selectionnée

Quelle est la meilleur méthode ?