Créer un outil de recherche d'onglet en vba
Résolu
anesr
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
anesr Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
anesr Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonsoir tout le monde,
Je suis en train de bosser sur un projet et je voudrai savoir comment mettre en place un outil de recherche d'onglet dans un même classeur via une macro...Car je vous cache pas que j'ai un classeur avec plus de 200 feuilles et j'aimerai pouvoir accéder a un onglet en tapant directement son nom dans une barre de recherche.
Si qqun a une idee se serai chouette ^^
Merci d'avance
Je suis en train de bosser sur un projet et je voudrai savoir comment mettre en place un outil de recherche d'onglet dans un même classeur via une macro...Car je vous cache pas que j'ai un classeur avec plus de 200 feuilles et j'aimerai pouvoir accéder a un onglet en tapant directement son nom dans une barre de recherche.
Si qqun a une idee se serai chouette ^^
Merci d'avance
A voir également:
- Créer un outil de recherche d'onglet en vba
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
6 réponses
Tu peux choisir dans une liste existant déjà :
Clic droit sur les boutons de déplacement parmi les onglets (en bas à gauche des noms d'onglets)
Clic droit sur les boutons de déplacement parmi les onglets (en bas à gauche des noms d'onglets)
Bonsoir à tous,
avec un formulaire.
Saisir une partie du nom dans la Textbox, la liste des feuilles comprenant ces caractères se crée.
Si la Textbox est vide, toutes les feuilles sont listées
Un double-clic sur un nom de feuille l'active.
https://www.cjoint.com/c/DBBa0JUXTIS
Fait rapidement vue l'heure, il y a peut-être des trucs à améliorer. On verra ça demain.
eric
PS: c'est un formulaire non modal. On peut le laisser ouvert et travailler sur les feuilles.
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
avec un formulaire.
Saisir une partie du nom dans la Textbox, la liste des feuilles comprenant ces caractères se crée.
Si la Textbox est vide, toutes les feuilles sont listées
Un double-clic sur un nom de feuille l'active.
https://www.cjoint.com/c/DBBa0JUXTIS
Fait rapidement vue l'heure, il y a peut-être des trucs à améliorer. On verra ça demain.
eric
PS: c'est un formulaire non modal. On peut le laisser ouvert et travailler sur les feuilles.
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic,
je reviens vers toi parce que dans la liste des onglet disponibles je voudrait en cacher certaint mais je sais pas comment modifier le code pour cela .
Pourrai tu me donner un coup' de pouce stp
Merci
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cible As Integer
On Error Resume Next
With ListBox1
If .ListIndex < 0 Then Exit Sub
Cible = .ListIndex
Worksheets(.Text).Activate
End With
End Sub
--------------------------------------------------------------------------------------------------------
Private Sub TextBox2_Change()
Dim Sh As Worksheet
ListBox1.Clear
For Each Sh In Worksheets
If TextBox2 = "" Then
ListBox1.AddItem Sh.Name
Else
If InStr(LCase(Sh.Name), LCase(TextBox2)) > 0 Then
ListBox1.AddItem Sh.Name
End If
End If
Next Sh
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim Sh As Worksheet
ListBox1.Clear
For Each Sh In Worksheets
ListBox1.AddItem Sh.Name
Next Sh
ListBox1.SetFocus
End Sub
je reviens vers toi parce que dans la liste des onglet disponibles je voudrait en cacher certaint mais je sais pas comment modifier le code pour cela .
Pourrai tu me donner un coup' de pouce stp
Merci
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cible As Integer
On Error Resume Next
With ListBox1
If .ListIndex < 0 Then Exit Sub
Cible = .ListIndex
Worksheets(.Text).Activate
End With
End Sub
--------------------------------------------------------------------------------------------------------
Private Sub TextBox2_Change()
Dim Sh As Worksheet
ListBox1.Clear
For Each Sh In Worksheets
If TextBox2 = "" Then
ListBox1.AddItem Sh.Name
Else
If InStr(LCase(Sh.Name), LCase(TextBox2)) > 0 Then
ListBox1.AddItem Sh.Name
End If
End If
Next Sh
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim Sh As Worksheet
ListBox1.Clear
For Each Sh In Worksheets
ListBox1.AddItem Sh.Name
Next Sh
ListBox1.SetFocus
End Sub
Pas bonjour non plus,
Pour ne pas à avoir à modifier la macro à chaque changement, j'ai ajouté une feuille 'Paramétrage' pour lister ces feuilles à ne pas lister.
Ajout code un peu partout, et dans Worksheet_Deactivate() de la feuille 'Paramétrage'.
A tester et faire un retour : https://www.cjoint.com/?DCgsIoHaP4S
eric
Pour ne pas à avoir à modifier la macro à chaque changement, j'ai ajouté une feuille 'Paramétrage' pour lister ces feuilles à ne pas lister.
Ajout code un peu partout, et dans Worksheet_Deactivate() de la feuille 'Paramétrage'.
A tester et faire un retour : https://www.cjoint.com/?DCgsIoHaP4S
eric