Recherche sur plusieur onglet

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 !

SSI83000

XLDnaute Occasionnel
Bonjour à tous je viens solicité vos connaissances.

J'utilisais ce code créer par Paritec sur un ancien de mes projets et je souhaiterais l'appliquer sur celui ci quelque chose prés je souhaiterais que la recherche ce fasse sur plusieur Feuil.

pour simplifier le tout j'ai nomée ces dite Feuils BDD1 BDD2 BDD3....

comment puis je faire svp merci d'avance.

Code:
Dim i&, fin&
    C1 = "": C2 = "": C3 = "": C4 = ""
    If T1 = "" Then L1.ListItems.Clear: Exit Sub
    fin = Feuil1.Range("A65536").End(xlUp).Row
    aa = Feuil1.Range("A2:I" & fin)
    For i = 1 To UBound(aa)
        For a = 1 To UBound(aa, 2)
            If aa(i, a) Like "*" & T1 & "*" Then aa(i, 9) = "oui"
        Next a
    Next i
    y = 1
    For i = 1 To UBound(aa)
        If aa(i, 9) = "oui" Then y = y + 1
    Next
    If y < 2 Then L1.ListItems.Clear: GoTo 1
    ReDim bb(y - 1, 8)
    y = 1
    For i = 1 To UBound(aa)
        If aa(i, 9) = "oui" Then
            For a = 1 To 8
                bb(y, a) = aa(i, a)
            Next a
            y = y + 1
        End If
    Next i
    With L1
        .ListItems.Clear
        .View = lvwReport
        .FullRowSelect = True
        .Gridlines = True
        For i = 1 To UBound(bb)
            .ListItems.Add , , bb(i, 1)
            For a = 2 To UBound(bb, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , bb(i, a)
            Next a
        Next i
1   End With
 

Pièces jointes

Re : Recherche sur plusieur onglet

Bonjour PMO merci pour ton aide ta solution me conviens presque mais cela me pose 2 probleme la premiere c'est qu'il soit en listbox ayant deja une listviews je l'utilise un peut pour tout sa evite d'avoir trop de controleur la seconde concerne la recherche elle même dans ma Bd j'ai par exemple PG et PG-PC
le soucis c'est quand je rentre PG il me trouve PG mais également PG-PC même si je sélectionne respecter les cases en tous cas merci encore je reste à disposition en cas de question à bientot
 
Re : Recherche sur plusieur onglet

Bonjour,

j'ai par exemple PG et PG-PC
le soucis c'est quand je rentre PG il me trouve PG mais également PG-PC même si je sélectionne respecter les cases en tous cas merci encore je reste à disposition en cas de question à bientot

Cochez la case "Totalité du contenu de la cellule" pour rechercher "PG" exclusivement

Cochez la case "Respecter la casse" si vous faites une distinction entre "PG" et "pg" ou "Pg" ou "pG"

Cordialement.

PMO
Patrick Morange
 
Re : Recherche sur plusieur onglet

Bonjour,

Comme l'usage d'une ListBox semble rédhibitoire à vos yeux j'ai repris le code de Paritec pour que la recherche se fasse sur toutes les feuilles du classeur.
Dans la foulée j'ai ajouté 2 CheckBox, une pour la sensibilité à la casse l'autre pour la recherche d'un mot entier et pour rester dans la veine de ce que je vous avais précédemment proposé.

Cordialement.

PMO
Patrick Morange
 
Re : Recherche sur plusieur onglet

Re bonjour à tous je sais je vais me faire siffler mais au final la solution de PM02 me pose pas mal de soucis la premiere étant qu'il me recherche sur toute les feuils alors comme je souhaitais qu'il recherche uniquement sur ceux commencant par "BDD" ex BDD1 BDD2 BDD3 .......
le second soucis est le fais que dans la listview dans la premiere colonne apparais le nom de la feuil ainsi que la plage de recherche j'aurais aimer simplement apparais la premiere colonne de mes feuils si quelqu'un peut m'aider à modifier cela je lui n serais reconnaissant

comme je disais la solution du type de Paritec me convenais trés bien je souhaitais juste qu'il me le fasse sur tous les feuil commençant par BDD j'ai bien essayer de les modifier moi même mais aprés plus 8 heures de tentative différent infrutueux je passe la main à celui qui pouras m'aider
 
Re : Recherche sur plusieur onglet

Bonjour,

Essayez le code suivant ( les modifications sont signalées par des ///)

Code:
Private Sub T1_Change()
Dim S As Worksheet
Dim var
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim Tbl()
Dim bool As Boolean
If T1 = "" Then
  L1.ListItems.Clear
  Exit Sub
End If
For Each S In ThisWorkbook.Worksheets
  If Left(S.Name, 3) = "BDD" Then   '/// on ne fait la recherche que sur les feuilles dont le nom commence poar BDD
    var = S.Range("A2:H" & S.[a65536].End(xlUp).Row)
    For i& = 1 To UBound(var, 1)
      For j& = 1 To UBound(var, 2)
        bool = False
        If CheckBox1 Then
          If CheckBox2 Then
            If var(i&, j&) = T1 Then bool = True
          Else
            If var(i&, j&) Like "*" & T1 & "*" Then bool = True
          End If
        Else
          If CheckBox2 Then
            If UCase(var(i&, j&)) = UCase(T1) Then bool = True
          Else
            If UCase(var(i&, j&)) Like UCase("*") & UCase(T1) & UCase("*") Then bool = True
          End If
        End If
        If bool Then
          cpt& = cpt& + 1
          ReDim Preserve Tbl(1 To 9, 1 To cpt&)
          Tbl(1, cpt&) = S.Name & " L" & i& + 1 & " C" & j& 'nom de la feuille, n° ligne, n° colonne
          For k& = 1 To UBound(var, 2)
            Tbl(k& + 1, cpt&) = var(i&, k&)
          Next k&
          Exit For
        End If
      Next j&
    Next i&
  End If    '///
Next S
If cpt& = 0 Then
  L1.ListItems.Clear
  Exit Sub
End If
With L1
  .ListItems.Clear
  .View = lvwReport
  .FullRowSelect = True
  .Gridlines = True
  For i& = 1 To UBound(Tbl, 2)
    .ListItems.Add , , Tbl(1, i&)
      For j& = 2 To UBound(Tbl, 1)
        .ListItems(.ListItems.Count).ListSubItems.Add , , Tbl(j&, i&)
      Next j&
  Next i&
End With
End Sub

Private Sub UserForm_Initialize()
With L1
  With .ColumnHeaders
    .Clear
    .Add , , "      Source", 0, lvwColumnLeft '/// on met la largeur de colonne à 0 pour qu'elle ne soit pas visible
    .Add , , "LIGNE° PI", 60, 2
    .Add , , "ZONE", 60, 2
    .Add , , "ADRESSE", 60, 2
    .Add , , "CANTON", 100, 2
    .Add , , "TYPE", 50, 2
    .Add , , "COORDONNEES", 80, 2
    .Add , , "Localisation", 90, 2
    .Add , , "Détecteur", 60, 2
  End With
  .View = lvwReport
  .FullRowSelect = False
End With
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : Recherche sur plusieur onglet

BONSOIR et merci PMO2 désolé de répondre aussi tard gros problème de pc ce qui à permis de tester ta solution elle est parfaite sur tous les plans j'ai eu le temps de bien tester et adapter merci beaucoup bonne soirée
 
- 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
15
Affichages
786
Réponses
5
Affichages
912
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
293
Réponses
5
Affichages
574
Retour