OVH Cloud OVH Cloud

Recherche sur Plusieurs feuilles

4 réponses
Avatar
jb
Bonsoir,

Je souhaiterai effectuer une recherche sur plusieurs feuilles d'un classeur.
Mais apparemment excel 2000 ne le permet pas contrairement à 2003.
Y a t il une soluce avec une macro ?

Merci de votre aide

4 réponses

Avatar
michdenis
Bonsoir JB,

Tu veux dire que tu as utilisé un "groupe de travail" qui consiste à sélectionner toutes les feuilles que tu désires en maintenant
la touche "Ctrl" enfoncée au moment de la sélection de tes feuilles avec la souris et que tu as tenté de lancer une recherche avec
la commande Rechercher du menu Édition et qu'excel refuse de faire le boulot au delà de la feuille active. Est-ce bien cela ?

Au besoin, tu peux utiliser cette macro :

Cette macro est de :
J.E. McGimpsey, Office/Mac MVP

'---------------------------------------
Rechercher un string dans un classeur

Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String
Dim countTot As Long
Dim counter As Long

strSearchString = InputBox(Prompt:= _
"Enter a title or other value to search for.", _
Title:="Search Workbook")

For Each ws In Worksheets
countTot = countTot + Application.CountIf( _
ws.UsedRange, "=" & strSearchString)
Next ws
If countTot = 0 Then
MsgBox strSearchString & " not found."
Else
counter = 0
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
counter = counter + 1
foundCell.Activate
returnValue = MsgBox("Found " & strSearchString & _
" at " & foundCell.Address & vbNewLine & _
"(" & counter & " of " & countTot & ")", _
vbOKCancel)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End If
End Sub 'SearchAllSheets
'-----------------------------------


Salutations!




Salutations!



"jb" a écrit dans le message de news: x2bIe.21939$
Bonsoir,

Je souhaiterai effectuer une recherche sur plusieurs feuilles d'un classeur.
Mais apparemment excel 2000 ne le permet pas contrairement à 2003.
Y a t il une soluce avec une macro ?

Merci de votre aide
Avatar
jb
Bjr,
Oui c'est exactement cela.
La fonction recherche ne fonctionne pas en groupe de travail sur plusieurs
feuilles ( Office 2000).
Je vais tester cette macro.
Merci beaucoup
Bonne journée

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

Bonsoir JB,

Tu veux dire que tu as utilisé un "groupe de travail" qui consiste à
sélectionner toutes les feuilles que tu désires en maintenant
la touche "Ctrl" enfoncée au moment de la sélection de tes feuilles avec
la souris et que tu as tenté de lancer une recherche avec
la commande Rechercher du menu Édition et qu'excel refuse de faire le
boulot au delà de la feuille active. Est-ce bien cela ?

Au besoin, tu peux utiliser cette macro :

Cette macro est de :
J.E. McGimpsey, Office/Mac MVP

'---------------------------------------
Rechercher un string dans un classeur

Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String
Dim countTot As Long
Dim counter As Long

strSearchString = InputBox(Prompt:= _
"Enter a title or other value to search for.", _
Title:="Search Workbook")

For Each ws In Worksheets
countTot = countTot + Application.CountIf( _
ws.UsedRange, "=" & strSearchString)
Next ws
If countTot = 0 Then
MsgBox strSearchString & " not found."
Else
counter = 0
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
counter = counter + 1
foundCell.Activate
returnValue = MsgBox("Found " & strSearchString & _
" at " & foundCell.Address & vbNewLine & _
"(" & counter & " of " & countTot & ")", _
vbOKCancel)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End If
End Sub 'SearchAllSheets
'-----------------------------------


Salutations!




Salutations!



"jb" a écrit dans le message de news:
x2bIe.21939$
Bonsoir,

Je souhaiterai effectuer une recherche sur plusieurs feuilles d'un
classeur.
Mais apparemment excel 2000 ne le permet pas contrairement à 2003.
Y a t il une soluce avec une macro ?

Merci de votre aide





Avatar
jb
Merci cela fonctionne super

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

Bonsoir JB,

Tu veux dire que tu as utilisé un "groupe de travail" qui consiste à
sélectionner toutes les feuilles que tu désires en maintenant
la touche "Ctrl" enfoncée au moment de la sélection de tes feuilles avec
la souris et que tu as tenté de lancer une recherche avec
la commande Rechercher du menu Édition et qu'excel refuse de faire le
boulot au delà de la feuille active. Est-ce bien cela ?

Au besoin, tu peux utiliser cette macro :

Cette macro est de :
J.E. McGimpsey, Office/Mac MVP

'---------------------------------------
Rechercher un string dans un classeur

Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String
Dim countTot As Long
Dim counter As Long

strSearchString = InputBox(Prompt:= _
"Enter a title or other value to search for.", _
Title:="Search Workbook")

For Each ws In Worksheets
countTot = countTot + Application.CountIf( _
ws.UsedRange, "=" & strSearchString)
Next ws
If countTot = 0 Then
MsgBox strSearchString & " not found."
Else
counter = 0
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
counter = counter + 1
foundCell.Activate
returnValue = MsgBox("Found " & strSearchString & _
" at " & foundCell.Address & vbNewLine & _
"(" & counter & " of " & countTot & ")", _
vbOKCancel)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End If
End Sub 'SearchAllSheets
'-----------------------------------


Salutations!




Salutations!



"jb" a écrit dans le message de news:
x2bIe.21939$
Bonsoir,

Je souhaiterai effectuer une recherche sur plusieurs feuilles d'un
classeur.
Mais apparemment excel 2000 ne le permet pas contrairement à 2003.
Y a t il une soluce avec une macro ?

Merci de votre aide





Avatar
michdenis
Bienvenu JB.


Salutations!


"jb" a écrit dans le message de news: J8DKe.23704$
Merci cela fonctionne super

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

Bonsoir JB,

Tu veux dire que tu as utilisé un "groupe de travail" qui consiste à
sélectionner toutes les feuilles que tu désires en maintenant
la touche "Ctrl" enfoncée au moment de la sélection de tes feuilles avec
la souris et que tu as tenté de lancer une recherche avec
la commande Rechercher du menu Édition et qu'excel refuse de faire le
boulot au delà de la feuille active. Est-ce bien cela ?

Au besoin, tu peux utiliser cette macro :

Cette macro est de :
J.E. McGimpsey, Office/Mac MVP

'---------------------------------------
Rechercher un string dans un classeur

Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String
Dim countTot As Long
Dim counter As Long

strSearchString = InputBox(Prompt:= _
"Enter a title or other value to search for.", _
Title:="Search Workbook")

For Each ws In Worksheets
countTot = countTot + Application.CountIf( _
ws.UsedRange, "=" & strSearchString)
Next ws
If countTot = 0 Then
MsgBox strSearchString & " not found."
Else
counter = 0
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
counter = counter + 1
foundCell.Activate
returnValue = MsgBox("Found " & strSearchString & _
" at " & foundCell.Address & vbNewLine & _
"(" & counter & " of " & countTot & ")", _
vbOKCancel)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End If
End Sub 'SearchAllSheets
'-----------------------------------


Salutations!




Salutations!



"jb" a écrit dans le message de news:
x2bIe.21939$
Bonsoir,

Je souhaiterai effectuer une recherche sur plusieurs feuilles d'un
classeur.
Mais apparemment excel 2000 ne le permet pas contrairement à 2003.
Y a t il une soluce avec une macro ?

Merci de votre aide