Recherche d'un numéro dans plusieurs onglets avec VBA

Re-bonjour les amis du forum,

Je voudrais connaître le moyen de rechercher un numéro (de 11 chiffres) dans plusieurs onglets.

Je m'explique : dans mon fichier, pour le mois de janvier 2009, j'ai un onglet par jour. Chaque onglet contient le même tableau et à partir d'un onglet supplémentaire "d'accueil", j'aimerais que l'utilisateur clique sur un bouton, que cela lui demande de saisir le numéro à rechercher et que la macro teste chaque onglet pour voir si le numéro existe déjà. Si oui, que la macro positionne le curseur sur le numéro et dans le bon onglet.

Je suis trop "petit" en VBA pour ne pas vous demander votre aide...

Merci d'avance à toutes les bonnes volontés.

Fabrice,

Bonjour à tous,

Fabrice, est-tu vraiment obligé d'avoir un onglet de tableau par jour ?

- Sais-tu que l'on pourrait les ranger les uns sous les autres, ce qui faciliterait les

recherches.

- il y aurait un onglet par mois et donc un fichier par an.

si çà t'intéresse, envoie un tableau type.

Amicalement

Claude.

Bonjour Claude,

Oui, je suis obligé d'avoir un onglet par jour en sachant qu'il s'agit des jours ouvrés et que ce n'est que pour 3 mois.

Je te joins un exemple succint car au final, il y aura plus de colonnes dans les onglets...

https://www.excel-pratique.com/~files/doc/renonciations.xls

Merci d'avance pour ton aide.

Fabrice,

re,

Regarde si çà peut t'aider

https://www.excel-pratique.com/~files/doc/renonciations2.xls

les 3 onglets sont regroupés

Claude.

Bonjour le forum,

Claude, pardon pour cette réponse tardive mais j'ai été obligé de m'absenter quelques jours...

Bref, j'ai regardé ta solution mais elle ne correspond pas tout à fait à ce que je dois faire. Je n'aurai pas d'autre choix que de garder un onglet par jour ouvré. Donc, comment chercher le numéro sur plusieurs onglets avec ta macro ? Je n'ai pas trouvé...

Merci de ton aide.

Fabrice,

Bonjour Fabrice,

Essaye avec ce code à placer dans un module en VBA.

Option Explicit
Sub ControleDansClasseur()
'Macro par Dan pour Fabrice69 -XL Pratique - 17/12/08
'http://www.excel-pratique.com/forum/viewtopic.php?t=8939
Application.ScreenUpdating = False
Dim code As Double
Dim i As Byte
Dim j As Integer
code = Sheets("Accueil").Range("E14")
For i = 1 To Worksheets.Count
    With Sheets(i)
    If .Name <> "Accueil" Then
    j = 2
    Do While .Cells(j, 7) <> ""
        If .Cells(j, 7) = code Then
            MsgBox "N° Existant dans la feuille : " & Sheets(i).Name
            .Activate
            .Cells(j, 7).Activate
            End
        End If
        j = j + 1
    Loop
    End If
    End With
Next
End Sub

Associe un bouton à cette macro.

Dans la feuille Accueil, mets ton code dans la cellule E14 puis clique sur ton bouton.

Amicalement

Dan

Re-,

Merci Dan... Dès que je suis dispo, je teste et te tiens au courant.

Amicalement.

Fabrice,

Re-,

Merci Dan... Dès que je suis dispo, je teste et te tiens au courant.

Amicalement.

Fabrice,

Re,

Le code que je t'ai proposé ne donne le nom que pour la première feuille trouvée.

Comme je vois que ton numéro apparait dans d'autres feuilles (doublons ...), j'ai modifié le code pour qu'il vérifie l'existence du code dans toutes les feuilles concernées.

Sub ControleDansClasseur()
'MAcro par Dan pour Fabrice69 -XL Pratique - 17/12/08
'http://www.excel-pratique.com/forum/viewtopic.php?t=8939
Application.ScreenUpdating = False
Dim code As Double
Dim i As Byte, J as byte
Dim ligcode As Integer
Dim feuille As String
code = Sheets("Accueil").Range("E14")
j = 1
For i = 1 To Worksheets.Count
    With Sheets(i)
        If .Name <> "Accueil" Then
        On Error Resume Next
        ligcode = Application.WorksheetFunction.Match(code, .Range("G2:G" & .Range("G65536").End(xlUp).Row), 0)
            If .Cells(ligcode + 1, 7) = code Then
                If j = 1 Then
                    feuille = Sheets(i).Name
                Else: feuille = feuille & ", " & Sheets(i).Name
                End If
                 j = j + 1
                If i = Worksheets.Count Then MsgBox "N° Existant dans feuille(s) : " & feuille
            End If
        End If
    End With
Next
End Sub

Amicalement

Dan

Bonjour le forum,

Effectivement, j'avais des doublons dans les onglets car c'était un exemple et j'avais fait des "recopies"... Mais en principe, le numéro recherché sera unique. En tous les cas, je garde précieusement ton code, Dan, ainsi que celui de Claude qui me servira pour d'autres applications.

J'ai pu adapter la macro à mon appli et cela fonctionne très bien. Un grand merci donc à tous les deux.

Je pense que je vous solliciterai à nouveau pour une autre macro que j'ai sous le coude, pour la même appli, mais je vais tenter de faire le maxi (avec mes petites connaissances). Si je suis bloqué, je lancerai un SOS...

Merci encore.

Fabrice,

Rechercher des sujets similaires à "recherche numero onglets vba"