Combobox et ouverture de feuilles
Résolu/Fermé
metek18
Messages postés
10
Date d'inscription
jeudi 9 juillet 2015
Statut
Membre
Dernière intervention
26 avril 2016
-
10 juil. 2015 à 15:56
metek18 Messages postés 10 Date d'inscription jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016 - 23 juil. 2015 à 14:15
metek18 Messages postés 10 Date d'inscription jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016 - 23 juil. 2015 à 14:15
A voir également:
- Combobox et ouverture de feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Page d'ouverture google - Guide
- Fusionner feuilles excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Ouverture compte gmail - Guide
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
10 juil. 2015 à 16:23
10 juil. 2015 à 16:23
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é.
metek18
Messages postés
10
Date d'inscription
jeudi 9 juillet 2015
Statut
Membre
Dernière intervention
26 avril 2016
Modifié par metek18 le 10/07/2015 à 17:32
Modifié par metek18 le 10/07/2015 à 17:32
Comment poster un fichier sur le forum ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 juil. 2015 à 09:18
11 juil. 2015 à 09:18
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
metek18
Messages postés
10
Date d'inscription
jeudi 9 juillet 2015
Statut
Membre
Dernière intervention
26 avril 2016
23 juil. 2015 à 14:15
23 juil. 2015 à 14:15
Bonjour et désolé pour la réponse tardive. J'ai adapaté ce code à mon projet à ça fonctionne nickel merci !