OVH Cloud OVH Cloud

Option Rechercher

14 réponses
Avatar
Caroline L.
Allo,

Petite question, je cherche dans l'aide Excel mais je ne trouve pas.
J'utilise régulièrement la fonction "rechercher" dans le menu Édition.
Je voudrais savoir si c'est possible d'étendre la recherche sur plusieurs
feuilles (dans le même classeur).

Gros merci

4 réponses

1 2
Avatar
isabelle
si si, Caroline il faut mettre le code dans un module standard,

Sub MaRecherche()
For Each f In WorkSheets
With f.Cells
'créer l'objet range de la valeur trouver
Set c = .Find(What:="toto")
'ensuite on test si cette objet n'est pas vide
If Not c Is Nothing Then
'on garde en mémoire l'adresse de la première occurance trouvée
firstaddress = c.Address
' on affiche la première occurance trouvée
MsgBox c.Address
'on continue a chercher pour trouver d'autre occurance
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next
End Sub

isabelle

Re-bonjour Isabelle,
Oui mais... je suis un peu mêlée. Est-ce que je dois nommé la procédure et
l'insérer dans un module ?
Comment effectuer une recherche ?
Que signifie la ligne : Set c = .Find(What:="toto")

Ouf !
Merci


"isabelle" a écrit dans le message de news:


bonjour Caroline,

remplace,
For Each f In Sheets(Array("Feuil1", "Feuil2"))
par,
For Each f In WorkSheets

isabelle


Allo,

oui j'ai des feuilles nommées Feuil1 et Feuil2... Sauf que je voulais
pouvoir l'insérer dans n'importe lequel des classeurs et les feuilles ne
seront pas nécessairement nommées Feuil1 et Feuil2. Je croyais qu'il
s'agissait d'une simple macro, avec laquelle je pourrais ajouter un



bouton

et cliquer dessus et le résultat serait le même que l'option Rechercher



du

menu Édition.

Je crois que je vais laissé tomber, c'est trop compliqué.

Merci beaucoup à toi.
Bonne soirée

"anonymousA" a écrit dans le message de news:
422cd090$0$25063$


re,

ben pour moi rien ne va pas.

Je me suis même placé sur la feuille3 ( donc elle est active au moment
où je lance la proc) au départ afin de vérifer si il n'y avait pas un
activate qui aurait manqué, mais non.
Es-tu sure d'avoir des feuilles nommées exactement Feuil1 et Feuil2 ?

A+



Bonjour AnonymousA,

Je fais le test et voici le message qui apparaît :
Erreur d'exécution 9, l'indice n'appartient pas à la sélection
- jaune sur la ligne : For Each f In Sheets(Array("Feuil1", "Feuil2"))

Est-ce que je dois insérer le tout dans un module du classeur ?
C'est ce que j'ai fait.
J'ai nommé la macro : Sub rechercher() et je clique sur Exécuter

Qu'est-ce qui ne va pas ?
Merci.



"anonymousA" a écrit dans le message de news:
422caeb9$0$25063$



bonsoir,

un autre truc en VBA p.e

For Each f In Sheets(Array("Feuil1", "Feuil2"))
With f.Cells
Set c = .Find(What:="toto")
If Not c Is Nothing Then
firstaddress = c.Address
MsgBox c.Address
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next




Allo,

Petite question, je cherche dans l'aide Excel mais je ne trouve pas.
J'utilise régulièrement la fonction "rechercher" dans le menu







Édition.

Je voudrais savoir si c'est possible d'étendre la recherche sur



plusieurs



feuilles (dans le même classeur).

Gros merci






















Avatar
Caroline L.
Isabelle,

merci pour tes explications...
Bon. J'ai fait le test et le résultat me donne une boîte dialogue avec
l'adresse absolue de la cellule contenant le mot "toto". Tant qu'il y a le
mot "toto", des boîtes (avec OK) s'affichent une après l'autre.


"isabelle" a écrit dans le message de news:

si si, Caroline il faut mettre le code dans un module standard,

Sub MaRecherche()
For Each f In WorkSheets
With f.Cells
'créer l'objet range de la valeur trouver
Set c = .Find(What:="toto")
'ensuite on test si cette objet n'est pas vide
If Not c Is Nothing Then
'on garde en mémoire l'adresse de la première occurance trouvée
firstaddress = c.Address
' on affiche la première occurance trouvée
MsgBox c.Address
'on continue a chercher pour trouver d'autre occurance
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next
End Sub

isabelle

Re-bonjour Isabelle,
Oui mais... je suis un peu mêlée. Est-ce que je dois nommé la procédure
et


l'insérer dans un module ?
Comment effectuer une recherche ?
Que signifie la ligne : Set c = .Find(What:="toto")

Ouf !
Merci


"isabelle" a écrit dans le message de news:


bonjour Caroline,

remplace,
For Each f In Sheets(Array("Feuil1", "Feuil2"))
par,
For Each f In WorkSheets

isabelle


Allo,

oui j'ai des feuilles nommées Feuil1 et Feuil2... Sauf que je voulais
pouvoir l'insérer dans n'importe lequel des classeurs et les feuilles
ne




seront pas nécessairement nommées Feuil1 et Feuil2. Je croyais qu'il
s'agissait d'une simple macro, avec laquelle je pourrais ajouter un



bouton

et cliquer dessus et le résultat serait le même que l'option Rechercher



du

menu Édition.

Je crois que je vais laissé tomber, c'est trop compliqué.

Merci beaucoup à toi.
Bonne soirée

"anonymousA" a écrit dans le message de news:
422cd090$0$25063$


re,

ben pour moi rien ne va pas.

Je me suis même placé sur la feuille3 ( donc elle est active au moment
où je lance la proc) au départ afin de vérifer si il n'y avait pas un
activate qui aurait manqué, mais non.
Es-tu sure d'avoir des feuilles nommées exactement Feuil1 et Feuil2 ?

A+



Bonjour AnonymousA,

Je fais le test et voici le message qui apparaît :
Erreur d'exécution 9, l'indice n'appartient pas à la sélection
- jaune sur la ligne : For Each f In Sheets(Array("Feuil1",
"Feuil2"))







Est-ce que je dois insérer le tout dans un module du classeur ?
C'est ce que j'ai fait.
J'ai nommé la macro : Sub rechercher() et je clique sur Exécuter

Qu'est-ce qui ne va pas ?
Merci.



"anonymousA" a écrit dans le message de news:
422caeb9$0$25063$



bonsoir,

un autre truc en VBA p.e

For Each f In Sheets(Array("Feuil1", "Feuil2"))
With f.Cells
Set c = .Find(What:="toto")
If Not c Is Nothing Then
firstaddress = c.Address
MsgBox c.Address
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next




Allo,

Petite question, je cherche dans l'aide Excel mais je ne trouve
pas.








J'utilise régulièrement la fonction "rechercher" dans le menu







Édition.

Je voudrais savoir si c'est possible d'étendre la recherche sur



plusieurs



feuilles (dans le même classeur).

Gros merci
























Avatar
ChrisV
Bonjour Caroline,

Une petite variante...

Sub zaza()
Dim ws As Worksheet
Dim c As Range
reC = InputBox(Chr(10) & "Rechercher :" & Chr(10) & _
"(minuscules ou majuscules...)", "Lancer une rechercher...")
If reC = "" Then Exit Sub
For Each ws In Worksheets
With ws.Cells
Set c = .Find(reC)
If Not c Is Nothing Then
adDt = c.Address
With Application
.GoTo Reference:=ws.Range(adDt), Scroll:=True
.ScreenUpdating = True
End With
nreC = MsgBox("Désirez-vous poursuivre la recherche" & Chr(10) _
& "sur les autres onglets ?" & Chr(10), 36, _
"Recherche accomplie...")
If nreC = vbNo Then Exit Sub
Set c = .FindNext(c)
Do
Set c = .FindNext(c)
Loop While c.Address <> adDt
End If
End With
Next ws
rnreC = MsgBox("Aucune autre donnée correspondante à : " & UCase(reC),
vbInformation _
, "Lancer une rechercher...")
End Sub


ChrisV


"Caroline L." a écrit dans le message de news:
aI5Xd.48374$
Re-bonjour Isabelle,
Oui mais... je suis un peu mêlée. Est-ce que je dois nommé la procédure et
l'insérer dans un module ?
Comment effectuer une recherche ?
Que signifie la ligne : Set c = .Find(What:="toto")

Ouf !
Merci


"isabelle" a écrit dans le message de news:

bonjour Caroline,

remplace,
For Each f In Sheets(Array("Feuil1", "Feuil2"))
par,
For Each f In WorkSheets

isabelle

Allo,

oui j'ai des feuilles nommées Feuil1 et Feuil2... Sauf que je voulais
pouvoir l'insérer dans n'importe lequel des classeurs et les feuilles
ne
seront pas nécessairement nommées Feuil1 et Feuil2. Je croyais qu'il
s'agissait d'une simple macro, avec laquelle je pourrais ajouter un
bouton


et cliquer dessus et le résultat serait le même que l'option Rechercher
du


menu Édition.

Je crois que je vais laissé tomber, c'est trop compliqué.

Merci beaucoup à toi.
Bonne soirée

"anonymousA" a écrit dans le message de news:
422cd090$0$25063$

re,

ben pour moi rien ne va pas.

Je me suis même placé sur la feuille3 ( donc elle est active au moment
où je lance la proc) au départ afin de vérifer si il n'y avait pas un
activate qui aurait manqué, mais non.
Es-tu sure d'avoir des feuilles nommées exactement Feuil1 et Feuil2 ?

A+


Bonjour AnonymousA,

Je fais le test et voici le message qui apparaît :
Erreur d'exécution 9, l'indice n'appartient pas à la sélection
- jaune sur la ligne : For Each f In Sheets(Array("Feuil1", "Feuil2"))

Est-ce que je dois insérer le tout dans un module du classeur ?
C'est ce que j'ai fait.
J'ai nommé la macro : Sub rechercher() et je clique sur Exécuter

Qu'est-ce qui ne va pas ?
Merci.



"anonymousA" a écrit dans le message de news:
422caeb9$0$25063$


bonsoir,

un autre truc en VBA p.e

For Each f In Sheets(Array("Feuil1", "Feuil2"))
With f.Cells
Set c = .Find(What:="toto")
If Not c Is Nothing Then
firstaddress = c.Address
MsgBox c.Address
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next



Allo,

Petite question, je cherche dans l'aide Excel mais je ne trouve pas.
J'utilise régulièrement la fonction "rechercher" dans le menu
Édition.






Je voudrais savoir si c'est possible d'étendre la recherche sur



plusieurs


feuilles (dans le même classeur).

Gros merci























Avatar
Caroline L.
Bonsoir ChrisV,
merci de te joindre à cette lignée.
Ta variante fonctionne très bien.

Merci beaucoup à toi et bonne fin de soirée
:o)



"ChrisV" a écrit dans le message de news:
#wlLL#
Bonjour Caroline,

Une petite variante...

Sub zaza()
Dim ws As Worksheet
Dim c As Range
reC = InputBox(Chr(10) & "Rechercher :" & Chr(10) & _
"(minuscules ou majuscules...)", "Lancer une rechercher...")
If reC = "" Then Exit Sub
For Each ws In Worksheets
With ws.Cells
Set c = .Find(reC)
If Not c Is Nothing Then
adDt = c.Address
With Application
.GoTo Reference:=ws.Range(adDt), Scroll:=True
.ScreenUpdating = True
End With
nreC = MsgBox("Désirez-vous poursuivre la recherche" & Chr(10)
_

& "sur les autres onglets ?" & Chr(10), 36, _
"Recherche accomplie...")
If nreC = vbNo Then Exit Sub
Set c = .FindNext(c)
Do
Set c = .FindNext(c)
Loop While c.Address <> adDt
End If
End With
Next ws
rnreC = MsgBox("Aucune autre donnée correspondante à : " & UCase(reC),
vbInformation _
, "Lancer une rechercher...")
End Sub


ChrisV


"Caroline L." a écrit dans le message de news:
aI5Xd.48374$
Re-bonjour Isabelle,
Oui mais... je suis un peu mêlée. Est-ce que je dois nommé la procédure
et


l'insérer dans un module ?
Comment effectuer une recherche ?
Que signifie la ligne : Set c = .Find(What:="toto")

Ouf !
Merci


"isabelle" a écrit dans le message de news:

bonjour Caroline,

remplace,
For Each f In Sheets(Array("Feuil1", "Feuil2"))
par,
For Each f In WorkSheets

isabelle

Allo,

oui j'ai des feuilles nommées Feuil1 et Feuil2... Sauf que je voulais
pouvoir l'insérer dans n'importe lequel des classeurs et les feuilles
ne
seront pas nécessairement nommées Feuil1 et Feuil2. Je croyais qu'il
s'agissait d'une simple macro, avec laquelle je pourrais ajouter un
bouton


et cliquer dessus et le résultat serait le même que l'option
Rechercher




du
menu Édition.

Je crois que je vais laissé tomber, c'est trop compliqué.

Merci beaucoup à toi.
Bonne soirée

"anonymousA" a écrit dans le message de news:
422cd090$0$25063$

re,

ben pour moi rien ne va pas.

Je me suis même placé sur la feuille3 ( donc elle est active au
moment





où je lance la proc) au départ afin de vérifer si il n'y avait pas un
activate qui aurait manqué, mais non.
Es-tu sure d'avoir des feuilles nommées exactement Feuil1 et Feuil2 ?

A+


Bonjour AnonymousA,

Je fais le test et voici le message qui apparaît :
Erreur d'exécution 9, l'indice n'appartient pas à la sélection
- jaune sur la ligne : For Each f In Sheets(Array("Feuil1",
"Feuil2"))







Est-ce que je dois insérer le tout dans un module du classeur ?
C'est ce que j'ai fait.
J'ai nommé la macro : Sub rechercher() et je clique sur Exécuter

Qu'est-ce qui ne va pas ?
Merci.



"anonymousA" a écrit dans le message de
news:






422caeb9$0$25063$


bonsoir,

un autre truc en VBA p.e

For Each f In Sheets(Array("Feuil1", "Feuil2"))
With f.Cells
Set c = .Find(What:="toto")
If Not c Is Nothing Then
firstaddress = c.Address
MsgBox c.Address
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
MsgBox c.Address
Set c = .FindNext(c)
Loop
End If
End With
Next



Allo,

Petite question, je cherche dans l'aide Excel mais je ne trouve
pas.








J'utilise régulièrement la fonction "rechercher" dans le menu
Édition.






Je voudrais savoir si c'est possible d'étendre la recherche sur



plusieurs


feuilles (dans le même classeur).

Gros merci



























1 2