VBA recherche dans chaque onglet et liste

Bonjour à tous,

J'espère que la réponse ne se trouve pas déjà quelque part ici. J'ai cherché je n'ai pas réussi à trouver mon bonheur pour l'instant.

Voilà mon problème :

Je souhaite lister les occurrences d'une valeur définie.

Je veux donc plus précisément faire une recherche dans la colonne A de chaque onglet (à partir du 7ème). L'objectif est d'avoir l'information de la présence de ma valeur ou non dans les onglets.

Voilà ce que j'ai écrit pour l'instant (je débute, soyez indulgents )

Dim code As String
        code= InputBox("Code ?", "Code", 0)

Dim Start As Integer
Dim I As Integer

    Start = 7
    Set Plage = Range("A10", Range("A10").End(xlDown))

    For I = Start To Sheets.Count

        If Not Sheets(I).Plage.Find(code) Is Nothing Then

        MsgBox "The " & Sheets(I).name & " is concerned", vbOK
        End If

    Next I

Résultat : "propriété ou méthode non gérée par cet objet" pour la ligne "If"... J'avoue ne pas comprendre ce qui coince ?

Merci d'avance pour votre aide

bonjour,

une proposition de correction

    Dim code As String
    code = InputBox("Code ?", "Code", 0)

    Dim Start As Integer
    Dim I As Integer

    Start = 7

    For I = Start To Sheets.Count
        Set Plage = Sheets(I).Range("A10", Range("A10").End(xlDown))

        If Not Plage.Find(code) Is Nothing Then

            MsgBox "The " & Sheets(I).Name & " is concerned", vbOK
        End If

Merci beaucoup, ça fonctionne !

Enfin presque, j'ai du modifier la plage :

Set Plage = Sheets(I).Range("A10", Range("A10").End(xlDown))

Ca me renvoi "erreur définie par l'application ou par l'objet"

J'ai donc fait ce petit changement :

Set Plage = Sheets(I).Range("A10", Sheets(I).Range("A10").End(xlDown))

Et ça marche sans problèmes.

Petite question bonus, si je veux lister dans une seule box tous les onglets concernés je dois faire comment ? Merci

bonjour,

remplace

 If Not Plage.Find(code) Is Nothing Then

            MsgBox "The " & Sheets(I).Name & " is concerned", vbOK
        End If
next i/code]
par

[code] If Not Plage.Find(code) Is Nothing Then
           sn=sn & vbcrlf & sheets(i).name
        End If
next i
 MsgBox "The following sheets are concerned" & sn, vbOK

Bonjour,

Cela ne fonctionne pas... Il n'y a même plus qu'une seul box qui s'ouvre...

En fait je ne vois pas comment lister tous les onglets avec le même "I"

Voilà ce que j'ai actuellement :

Sub test()

Dim code As String
        code = InputBox("Enter the code", "code", 0)

Dim Start As Integer
Dim I As Integer

    Start = 7

    For I = Start To Sheets.Count

        Set Plage = Sheets(I).Range("A10", Sheets(I).Range("A10").End(xlDown))

     If Not Plage.Find(code) Is Nothing Then
           sn = vbCrLf & Sheets(I).name
        End If
 MsgBox "The following sheets are concerned" & sn, vbOK

    Next I

End Sub

En fait je ne vois pas comment faire. I me renvoi une première valeur mais à chaque fois que je passe la ligne next I il change de valeur et je ne peux donc pas avoir tous les résultats existant de I dans une seule box ?

bonjour,

correction

Sub test()

Dim code As String
        code = InputBox("Enter the code", "code", 0)

Dim Start As Integer
Dim I As Integer

    Start = 7

    For I = Start To Sheets.Count

        Set Plage = Sheets(I).Range("A10", Sheets(I).Range("A10").End(xlDown))

     If Not Plage.Find(code) Is Nothing Then
           sn = sn & vbCrLf & Sheets(I).name 
        End If
    Next I
 MsgBox "The following sheets are concerned" & sn, vbOK

End Sub

Ok j'ai compris, et ça fonctionne, merci beaucoup !

Rechercher des sujets similaires à "vba recherche chaque onglet liste"