Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Soleil11
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Soleil11

XLDnaute Occasionnel
Bonjour le Forum,

J'essaie de terminer ce code mais je bloque ici, car mes connaissances ne sont pas assez poussées en VBA.

Pourriez-vous m'aider à modifier ce code, afin de pouvoir rechercher du text/chiffre dans toutes les feuilles de mon classeur.

Actuellement, ce code marche que si je suis sur la même feuille et j'aimerais qu'il effectue une recherche sur toutes les feuille de mon classeur. Ci-dessous le code :

Sub rechercher()

Dim Shr

Shr = InputBox("chercher")

Cells.Find(What:=Shr, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate

End Sub

Merci pour votre aide.

Soleil11🙂
 
Re : Rechercher VBA

Bonjour Soleil11,
Sans fichier exemple difficile de répondre, mais pour utiliser toutes les feuilles d'un classeur il y a cette méthode :

Code:
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
'La macro de recherche
Next f
Cordialement
 
Re : Rechercher VBA


Bonjour,

Le code ci-dessous serait parfait pour moi mais il attribue une couleur lorsqu'il trouve la valeur x. Ce qu'il me faut c'est dès qu'il trouve la valeur x et qu'il s'arrête à la première valeur trouvée. J'ai essayé de modifier le code en ajoutant "c.select" ou "c.activate" au lieu de "c.Interior.ColorIndex = 4 " et d'enlever "Set c = .FindNext(c)" mais cela ne fonctionne pas. Pourriez-vous m'aider à nouveau.

Sub chercheFindMultiFeuillesValeur()
x = "ABCD"
For Each s In ActiveWorkbook.Sheets
With Sheets(s.Name).Cells
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
Do
c.Interior.ColorIndex = 4
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End With
Next s
End Sub


Merci.

Soleil11😛
 
Re : Rechercher VBA

Bonjour à tous
Peut être

Code:
Sub chercheFindMultiFeuillesValeur()
x = "ABCD"
For Each s In ActiveWorkbook.Sheets
     With Sheets(s.Name).Cells
         Set c = .Find(x, LookIn:=xlValues)
             If Not c Is Nothing Then
                premier = c.Address
                Exit For
            End If
     End With
Next s
MsgBox premier
End Sub
Cordialement
 
Re : Rechercher VBA


Rebonjour,

C'est presque parfait mais j'aimerais encore effectuer les modifications ci-dessus en vert.

Merci d'avance.

Soleil11😀
 
Re : Rechercher VBA

Re
Code:
Sub chercheFindMultiFeuillesValeur()
x = InputBox("Nom", "Chercher")
If x = "" Then Exit Sub
    For Each s In ActiveWorkbook.Sheets
        With Sheets(s.Name).Cells
            Set c = .Find(x, LookIn:=xlValues)
                If Not c Is Nothing Then
                    premier = c.Address
                    Exit For
                End If
        End With
    Next s
If premier <> "" Then
   Sheets(s.Name).Activate
   Range(premier).Select
Else
    MsgBox x & " n'a pas été trouvé"
End If
End Sub
Cordialement
 
Re : Rechercher VBA

Rebonjour,

Pour la première modification "'imput box" cela fonctione j'ai ajouté x = imputbox ("chercher") et cela fonctione. Mais comment faire pour activer la feuille et la cellule lorsqu'il trouve la valeur recherchée.

Soleil11.
Merci d'avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
589
Réponses
2
Affichages
411
Réponses
1
Affichages
347
Réponses
3
Affichages
640
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…