Faire une recherche dans plusieurs onglets

Bonjour à tous

J’ai fait un petit programme en VBA pour rechercher un nom dans une liste donnée.

Je voudrais avec une boucle « For Each » « ou autre », que cette recherche ne s’arrête pas à la fin du premier onglet, mais qu’elle continue dans les autres onglets (de janvier à décembre).

Est-ce possible ?

Si oui pouvez vous adapter ma macro ou pour les plus courageux, m’en pondre une autre qui fera ce travail

Je vous joins mon fichier et sa macro pour plus de clarté.

Merci d’avance

Novicevba45

pratique.com/~files/doc2/for_each_sheets_recherche.xls

Bonsoir,

Vois si çà te va

Sub recherche_dans_Pfeuilles()
Dim Lg As Long, Cel As Range, i As Byte
Dim Nom As String
    NbF = Worksheets.Count
        Nom = InputBox("Nom à Rechercher")
        If Nom = "" Then Exit Sub
        NomMaj = UCase((Nom))

    For i = 1 To NbF - 3
        Worksheets(i).Select
        Lg = Range("b65536").End(xlUp).Row
        Range("b4:b" & Lg).Interior.ColorIndex = xlNone
        For Each Cel In Range("b4:b" & Lg)
            If Cel = NomMaj Then
            Cel.Select
            Cel.Interior.ColorIndex = 6
            MsgBox (Cel & " a été trouvé")
            End If
        Next Cel
    Next i
MsgBox ("Les cellules trouvées sont colorées en jaune")
End Sub

Fichier

https://www.excel-pratique.com/~files/doc2/UxEKTfor_each_sheets_rechercheC1.xls

à+....Claude.

Bonjour à vous deux,

une autre version avec la fonction FIND:

Sub ChercheEtTrouve(ValeurRecherche As Variant)
    Dim MaFeuille As Worksheet
    Dim CellResultat As Range
    Dim NbResultat As Integer

    For Each MaFeuille In Worksheets
        With MaFeuille.Range("B:B")
            Set CellResultat = .Find(ValeurRecherche, LookAt:=xlWhole, LookIn:=xlValues)
            If Not CellResultat Is Nothing Then
                firstAddress = CellResultat.Address
                Do
                    CellResultat.Interior.ColorIndex = 6
                    NbResultat = NbResultat + 1
                    Set CellResultat = .FindNext(CellResultat)
                Loop While Not CellResultat Is Nothing And CellResultat.Address <> firstAddress
            End If
        End With
    Next MaFeuille

    MsgBox NbResultat & " occurence(s) trouvée(s)"
End Sub

Il reste juste à faire l'appel depuis une procedure:

Private Sub CommandButton1_Click()
    Dim ChaineRecherche As String

    ChaineRecherche = InputBox("Valeur à rechercher")
    If Not ChaineRecherche = "Faux" Then Call ChercheEtTrouve(ChaineRecherche)
End Sub
Rechercher des sujets similaires à "recherche onglets"