Combobox et ouverture de feuilles
Résolu
metek18
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
metek18 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
metek18 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un formulaire récupérant les données d'une feuille. Dans ce formulaire, 4 combobox récupérant un numéro, un nom, une année, un mois et un bouton rechercher.
J'ai des feuilles "ventes janvier", "ventes février", ... qui contiennent en B1, un numéro, en B3, un nom, en J1, une année et en J2 un mois.
Je voudrais que si le contenu de chaque combobox correspond au contenu de chaque case(B1, B3, J1, J2) d'une ou plusieurs feuilles de mon classeur alors on active ces feuilles.
J'ai voulu procéder comme suit sans succès :
- Comparer le contenu de la première combo avec le contenu de toutes les cellules B1 de mon classeur.
- Comparer le contenu de la deuxième combo avec le contenu de toutes les cellules B3 de mon classeur etc
- Si chaque case correspond à la bonne combobox alors on affiche la feuille en question.
Merci de votre aide !
J'ai créé un formulaire récupérant les données d'une feuille. Dans ce formulaire, 4 combobox récupérant un numéro, un nom, une année, un mois et un bouton rechercher.
J'ai des feuilles "ventes janvier", "ventes février", ... qui contiennent en B1, un numéro, en B3, un nom, en J1, une année et en J2 un mois.
Je voudrais que si le contenu de chaque combobox correspond au contenu de chaque case(B1, B3, J1, J2) d'une ou plusieurs feuilles de mon classeur alors on active ces feuilles.
J'ai voulu procéder comme suit sans succès :
- Comparer le contenu de la première combo avec le contenu de toutes les cellules B1 de mon classeur.
- Comparer le contenu de la deuxième combo avec le contenu de toutes les cellules B3 de mon classeur etc
- Si chaque case correspond à la bonne combobox alors on affiche la feuille en question.
Merci de votre aide !
A voir également:
- Combobox et ouverture de feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Page d'ouverture google - Guide
- Bruler des feuilles de laurier - Guide
- Fusionner feuilles excel - Guide
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
3 réponses
Bonjour,
Ce que je ferais :
Utiliser les événement _Click() des 4 comboboxes, comme ceci :
1- ComboBox1_Click()
=> Remplit une variable tableau des noms de feuilles ou on trouve le contenu de ComboBox1 en B1
=> Vide ComboBox2
=> Remplit ComboBox2 avec les noms situés en B3 des feuilles référencées dans la variable tableau
2- ComboBox2_Click()
=> remplit une variable tableau (à partir de la première variable tableau) des noms de feuilles ou on trouve le nom choisi en B3
======> on a donc ici le nom des feuilles valides pour B1 et B3
=> vide ComboBox3
=> Remplit ComboBox3 avec les années situés en J1 des feuilles référencées dans la variable tableau
3- ComboBox3_Click()
=> remplit une variable tableau (à partir de la seconde variable tableau) des noms de feuilles ou on trouve l'année choisie en J1
======> on a donc ici le nom des feuilles valides pour B1 et B3 et J1
=> vide ComboBox4
=> Remplit ComboBox avec les mois situés en J2 des feuilles référencées dans la variable tableau
4- ComboBox4_Click()
=> Cherche, dans la variable tableau précédente, les feuilles correspondante au mois choisi.
Si tu veux une maquette, il faudra nous fournir un exemple de fichier anonymisé.
Ce que je ferais :
Utiliser les événement _Click() des 4 comboboxes, comme ceci :
1- ComboBox1_Click()
=> Remplit une variable tableau des noms de feuilles ou on trouve le contenu de ComboBox1 en B1
=> Vide ComboBox2
=> Remplit ComboBox2 avec les noms situés en B3 des feuilles référencées dans la variable tableau
2- ComboBox2_Click()
=> remplit une variable tableau (à partir de la première variable tableau) des noms de feuilles ou on trouve le nom choisi en B3
======> on a donc ici le nom des feuilles valides pour B1 et B3
=> vide ComboBox3
=> Remplit ComboBox3 avec les années situés en J1 des feuilles référencées dans la variable tableau
3- ComboBox3_Click()
=> remplit une variable tableau (à partir de la seconde variable tableau) des noms de feuilles ou on trouve l'année choisie en J1
======> on a donc ici le nom des feuilles valides pour B1 et B3 et J1
=> vide ComboBox4
=> Remplit ComboBox avec les mois situés en J2 des feuilles référencées dans la variable tableau
4- ComboBox4_Click()
=> Cherche, dans la variable tableau précédente, les feuilles correspondante au mois choisi.
Si tu veux une maquette, il faudra nous fournir un exemple de fichier anonymisé.
Bonjour,
Essaie ceci :
en entête du module de l'userform, avant toute procédure ou fonction, déclare :
Ensuite, dans le code, copie-colle ceci (adapte les noms des comboboxes) :
Je ne serais pas de retour ici avant mercredi!
Bon week end
Essaie ceci :
en entête du module de l'userform, avant toute procédure ou fonction, déclare :
'En entête de module Private Tab1(), Tab2(), Tab3(), Tab4()
Ensuite, dans le code, copie-colle ceci (adapte les noms des comboboxes) :
Private Sub ComboBox1_Click() Erase Tab1: ComboBox2.Clear Dim Ws As Worksheet, cpt As Integer For Each Ws In ThisWorkbook.Worksheets With Ws If CStr(.Range("B1")) = ComboBox1 Then ReDim Preserve Tab1(cpt) Tab1(cpt) = .Name cpt = cpt + 1 Me.ComboBox2.Value = .Range("B3") If Me.ComboBox2.ListIndex = -1 Then Me.ComboBox2.AddItem .Range("B3") End If End With Next End Sub Private Sub ComboBox2_Click() Erase Tab2: ComboBox3.Clear Dim Ws As Worksheet, cpt As Integer For Each Ws In ThisWorkbook.Worksheets(Tab1) With Ws If CStr(.Range("B3")) = ComboBox2 Then ReDim Preserve Tab2(cpt) Tab2(cpt) = .Name cpt = cpt + 1 Me.ComboBox3.Value = .Range("J1") If Me.ComboBox3.ListIndex = -1 Then Me.ComboBox3.AddItem .Range("J1") End If End With Next End Sub Private Sub ComboBox3_Click() Erase Tab3: ComboBox4.Clear Dim Ws As Worksheet, cpt As Integer For Each Ws In ThisWorkbook.Worksheets(Tab2) With Ws If CStr(.Range("J1")) = ComboBox3 Then ReDim Preserve Tab3(cpt) Tab3(cpt) = .Name cpt = cpt + 1 Me.ComboBox4.Value = .Range("J2") If Me.ComboBox4.ListIndex = -1 Then Me.ComboBox4.AddItem .Range("J2") End If End With Next End Sub Private Sub ComboBox4_Click() Erase Tab4 Dim Ws As Worksheet, cpt As Integer For Each Ws In ThisWorkbook.Worksheets(Tab3) With Ws If CStr(.Range("J2")) = ComboBox4 Then ReDim Preserve Tab4(cpt) Tab4(cpt) = .Name cpt = cpt + 1 End If End With Next 'ICI, la variable Tab4 contient les noms des feuilles ou on trouve les 4 valeurs For cpt = LBound(Tab4) To UBound(Tab4) MsgBox Tab4(cpt) Next cpt End Sub
Je ne serais pas de retour ici avant mercredi!
Bon week end