recherche sur plusieurs onglets

  • Initiateur de la discussion Initiateur de la discussion ccpapy
  • 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 !

ccpapy

XLDnaute Impliqué
Bonsoir à tous,
en ce dimanche pluvieux, j'ai décidé de m'attaquer à un nouveau projet😕
mais voilà, je bute:
Je retrouve la date la plus ancienne parmi tous les onglets, mais je ne sais pas retrouver à quel onglet elle appartient. Encore moins si 2 (ou+) onglets ont la même date par formule ou macro.
Un petit exemple pour illustrer.
Merci à vous
 

Pièces jointes

Re : recherche sur plusieurs onglets

Bonjour,

en ce dimanche pluvieux

En Alsace on a eu plus de chance🙂.

Voici un exemple par macro:

Code:
Private Sub CommandButton1_Click()
For n = 2 To Sheets.Count - 2
    With Sheets(n).Cells
        Set trouve = .Find([D10].Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not trouve Is Nothing Then
            firstAddress = trouve.Address
            Do
                col = [IV10].End(xlToLeft).Column + 1
                Cells(10, col).Value = "onglet " & Sheets(n).Name
                Set trouve = .FindNext(trouve)
            Loop While Not trouve Is Nothing And trouve.Address <> firstAddress
        End If
        Set trouve = .Find([D11].Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not trouve Is Nothing Then
            firstAddress = trouve.Address
            Do
                col = [IV10].End(xlToLeft).Column + 1
                Cells(11, col).Value = "onglet " & Sheets(n).Name
                Set trouve = .FindNext(trouve)
            Loop While Not trouve Is Nothing And trouve.Address <> firstAddress
        End If
    End With
Next
        
End Sub

Bon test.
 
Re : recherche sur plusieurs onglets

Bonsoir,

Code:
Function NomMinOnglet(début, fin, c As Range)
 Application.Volatile
 nom = ""
 m = Sheets(début).Range(c.Address).Value
 If IsNumeric(m) Or IsDate(m) Then nom = Sheets(début).Name
 For s = début To fin
     If Sheets(s).Range(c.Address).Value < m Then
       m = Sheets(s).Range(c.Address).Value
       nom = Sheets(s).Name
     End If
 Next s
 NomMinOnglet = nom
End Function

JB
 

Pièces jointes

Re : recherche sur plusieurs onglets

re,
merci pour cette rapidité.
après essai :
en cas de plusieurs onglets avec la même date (D11)je n'ai qu'1 onglet trouvé.

en fait cela venait d'une erreur sur le 2éme code
col = [IV10].End(xlToLeft).Column + 1
Cells(11, col).Value = "onglet " & Sheets(n).Name
à remplacer par
col = [IV11]. bla bla bla....

ce fichier n'étant qu'1 exemple, je vais avoir plusieurs dates à rapatrier de cette façon et ce sur beaucoup plus d'onglets.
Je me demande si en dehors du fait d'écrire ce code pour toutes ces dates, cela ne va pas ralentir énormement l'éxecution de la macro à la fin!!!
je vais peut-être passer par plusieurs boutons pour décomposer le code en plusieurs.
à tester donc. ou autre solution ?

en tout cas encore merci pour ton aide précieuse
bonne soirée
 
Re : recherche sur plusieurs onglets

voilà je suis de retour,
même constat pour les doublons de date, le code ne prend en compte que le premier onglet et ne trouve pas les autres qui ont cette même date😱

je n'arrive pas à le comprendre assez pour le modifier seul.

les noms des onglets sont en fait du texte et sont integrés à la création de la feuille automatiquement en D1. Je ne sais pas également si cela a son importance

je vais aller manger🙂 pour avoir peut-être des idées

bon appetit à tous
à+
 
Re : recherche sur plusieurs onglets

re,
merci pour cette rapidité.
après essai :
en cas de plusieurs onglets avec la même date (D11)je n'ai qu'1 onglet trouvé.

en fait cela venait d'une erreur sur le 2éme code
col = [IV10].End(xlToLeft).Column + 1
Cells(11, col).Value = "onglet " & Sheets(n).Name
à remplacer par
col = [IV11]. bla bla bla....

ce fichier n'étant qu'1 exemple, je vais avoir plusieurs dates à rapatrier de cette façon et ce sur beaucoup plus d'onglets.
Je me demande si en dehors du fait d'écrire ce code pour toutes ces dates, cela ne va pas ralentir énormement l'éxecution de la macro à la fin!!!
je vais peut-être passer par plusieurs boutons pour décomposer le code en plusieurs.
à tester donc. ou autre solution ?

en tout cas encore merci pour ton aide précieuse
bonne soirée
Re, bonjour JB 🙂,

Si tu as plusieurs dates à rapatrier, tu peux faire une boucle comme ceci:

Code:
Private Sub CommandButton1_Click()
For n = 2 To Sheets.Count - 2
    With Sheets(n).Cells
        [COLOR=Red][B]For lig = 10 To [C10].End(xlDown).Row[/B][/COLOR]
            Set trouve = .Find([B][COLOR=Red]Range("D" & lig)[/COLOR][/B].Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not trouve Is Nothing Then
                firstAddress = trouve.Address
                Do
                    col = [B][COLOR=Red]Range("IV" & lig)[/COLOR][/B].End(xlToLeft).Column + 1
                    Cells([B][COLOR=Red]lig[/COLOR][/B], col).Value = "onglet " & Sheets(n).Name
                    Set trouve = .FindNext(trouve)
                Loop While Not trouve Is Nothing And trouve.Address <> firstAddress
            End If
        Next
    End With
Next
End Sub
 
Re : recherche sur plusieurs onglets

En fonction perso matricielle:

Code:
Function NomMinOnglet2(début, fin, c As Range)
 Application.Volatile
 Dim temp(1 To 3)
 m = Sheets(début).Range(c.Address).Value
 For s = début To fin
     If Sheets(s).Range(c.Address).Value = m Then
       n = n + 1
       temp(n) = Sheets(s).Name
     End If
 Next s
 NomMinOnglet2 = temp
End Function


JB
 

Pièces jointes

- 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
6
Affichages
811
Réponses
6
Affichages
888
Retour