Contenu d'un ComboBox en fonction du contenu d'un autre ComboBox
Résolu/Fermé
DESTIN8TE
Messages postés
35
Date d'inscription
lundi 14 janvier 2019
Statut
Membre
Dernière intervention
15 février 2019
-
Modifié le 18 janv. 2019 à 13:38
DESTIN8TE Messages postés 35 Date d'inscription lundi 14 janvier 2019 Statut Membre Dernière intervention 15 février 2019 - 31 janv. 2019 à 15:33
DESTIN8TE Messages postés 35 Date d'inscription lundi 14 janvier 2019 Statut Membre Dernière intervention 15 février 2019 - 31 janv. 2019 à 15:33
A voir également:
- Contenu d'un ComboBox en fonction du contenu d'un autre ComboBox
- Vba combobox listindex ✓ - Forum VB / VBA
- Combobox additem ✓ - Forum VB / VBA
- Javascript combobox - Forum Javascript
- Vba combobox selected item ✓ - Forum VB / VBA
- Vba trier combobox ordre alphabétique ✓ - Forum VB / VBA
3 réponses
yg_be
Messages postés
23444
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 janvier 2025
Ambassadeur
1 560
Modifié le 18 janv. 2019 à 15:43
Modifié le 18 janv. 2019 à 15:43
bonjour,
à quoi correspond le nom "Equipe"?
quelle est ton niveau et ton expérience en Excel et en VBA?
à quoi correspond le nom "Equipe"?
quelle est ton niveau et ton expérience en Excel et en VBA?
DESTIN8TE
Messages postés
35
Date d'inscription
lundi 14 janvier 2019
Statut
Membre
Dernière intervention
15 février 2019
Modifié le 30 janv. 2019 à 14:31
Modifié le 30 janv. 2019 à 14:31
Alors j'ai enfin réussi à avoir ce que je voulais mais il y a encore un soucis.
Quand j'exécute l'UserForm depuis la feuille "Paramètres" tout va bien car c'est dans celle-ci que se situe les informations mais je dois exécuter l'UserForm depuis la feuille "DATA".
J'ai donc utilisé la méthode Sheets(".....") pour désigner la feuille concernant les informations tout en exécutant l'UserForm ailleurs que dans la feuille "Paramètres".
Quand je suis dans la feuille "Paramètres" la comboBoxTeam1 me renvoie bien les équipes et dans la comboBoxEmet j'ai bien les employés correspondant à leur équipe mais dès que je suis dans une autre feuille quand je sélectionne une équipe, j'ai directement une erreur :
L'erreur se situe ici.
Voici le code (attention c'est un peu long) :
PS : Le terme exact de ce que je voulais était des liste en cascade.
Quand j'exécute l'UserForm depuis la feuille "Paramètres" tout va bien car c'est dans celle-ci que se situe les informations mais je dois exécuter l'UserForm depuis la feuille "DATA".
J'ai donc utilisé la méthode Sheets(".....") pour désigner la feuille concernant les informations tout en exécutant l'UserForm ailleurs que dans la feuille "Paramètres".
Quand je suis dans la feuille "Paramètres" la comboBoxTeam1 me renvoie bien les équipes et dans la comboBoxEmet j'ai bien les employés correspondant à leur équipe mais dès que je suis dans une autre feuille quand je sélectionne une équipe, j'ai directement une erreur :
L'erreur se situe ici.
Voici le code (attention c'est un peu long) :
Dim Colonne As Integer
Dim i As Integer, j As Integer
' *****************************************************
' Procédure pour initialiser les cmbBoxTeam1 et 2 du
' formulaire
' *****************************************************
Private Sub UserForm_Initialize()
i = 24 'Variable qui définie la 24e colonne dans la feuille "Paramètres"
Do While Sheets("Paramètres").Cells(4, i ).Value <> ""
frmInsertMod.cmbBoxTeam1.AddItem Sheets("Paramètres").Cells(4, i).Value
frmInsertMod.cmbBoxTeam2.AddItem Sheets("Paramètres").Cells(4, i).Value
i = i + 1
Loop
End Sub
' *******************************************************
' Procédure pour modifier les données de cmbBoxEmet en
' fonction de cmbBoxTeam1
' *******************************************************
Private Sub cmbBoxTeam1_Change()
i = 24
frmInsertMod.cmbBoxEmet.Clear
Do While Sheets("Paramètres").Cells(4, i ).Value <> ""
If Sheets("Paramètres").Cells(4, i ).Value = cmbBoxTeam1.Value Then
Sheets("Paramètres").Cells(4, i ).Select
Colonne = ActiveCell.Column
End If
i = i + 1
Loop
j = 6
Do While Sheets("Paramètres").Cells(j, Colonne).Value <> ""
frmInsertMod.cmbBoxEmet.AddItem Sheets("Paramètres").Cells(j, Colonne)
j = j + 1
Loop
frmInsertMod.cmbBoxEmet.ListIndex = 0
End Sub
' *******************************************************
' Procédure pour modifier les données de cmbBoxAgQua en
' fonction de cmbBoxTeam2
' *******************************************************
Private Sub cmbBoxTeam2_Change()
i = 24
frmInsertMod.cmbBoxAgQua.Clear
Do While Sheets("Paramètres").Cells(4, i).Value <> ""
If Sheets("Paramètres").Cells(4, i).Value = cmbBoxTeam2.Value Then
Sheets("Paramètres").Cells(4, i).Select
Colonne = ActiveCell.Column
End If
i = i + 1
Loop
j = 6
Do While Sheets("Paramètres").Cells(j, Colonne).Value <> ""
frmInsertMod.cmbBoxAgQua.AddItem Sheets("Paramètres").Cells(j, Colonne)
j = j + 1
Loop
frmInsertMod.cmbBoxAgQua.ListIndex = 0
End Sub
PS : Le terme exact de ce que je voulais était des liste en cascade.
yg_be
Messages postés
23444
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 janvier 2025
1 560
Modifié le 30 janv. 2019 à 15:02
Modifié le 30 janv. 2019 à 15:02
où est ici?
merci d'utiliser la catégorie "basic" quand tu partage du code VBA.
pourquoi fais-tu ceci?
les Select et ActiveCell sont très compliqués à utiliser, donc à proscrire.
tu peux sans doute faire:
ou bien
merci d'utiliser la catégorie "basic" quand tu partage du code VBA.
pourquoi fais-tu ceci?
Sheets("Paramètres").Cells(4, i).Select Colonne = ActiveCell.Column
les Select et ActiveCell sont très compliqués à utiliser, donc à proscrire.
tu peux sans doute faire:
Colonne =Sheets("Paramètres").Cells(4, i).Column
ou bien
Colonne = i
DESTIN8TE
Messages postés
35
Date d'inscription
lundi 14 janvier 2019
Statut
Membre
Dernière intervention
15 février 2019
30 janv. 2019 à 15:45
30 janv. 2019 à 15:45
Tu me demande où est "ici" mais tu me corriges le bon endroit. ^^ D'accord j'avais pas fait gaffe qu'il y avait Basic, j'ai tout de suite chercher Visual en fait mais non c'est du basic. Et du coup ça fonctionne bien, merci beaucoup pour ton aide et l'aide d'autre personne qui ne savent pas qu'ils m'ont aidé.
Petite dédicace à eu:
Chaîne Youtube de :
Learnaccess : https://www.youtube.com/channel/UCopRqBjsUCxDWwSrQdSS1Jg
Lydia Provin : https://www.youtube.com/channel/UCjELr5_ORn3mnh_43WnjAog
Petite dédicace à eu:
Chaîne Youtube de :
Learnaccess : https://www.youtube.com/channel/UCopRqBjsUCxDWwSrQdSS1Jg
Lydia Provin : https://www.youtube.com/channel/UCjELr5_ORn3mnh_43WnjAog
DESTIN8TE
Messages postés
35
Date d'inscription
lundi 14 janvier 2019
Statut
Membre
Dernière intervention
15 février 2019
31 janv. 2019 à 13:53
31 janv. 2019 à 13:53
Voilà la solution finale à tout ça :
Dim Colonne As Integer Dim i As Integer, j As Integer ' ***************************************************** ' Procédure pour initialiser l'UserForm en particulier ' comboBoxTeam1 et 2 du formulaire ' ***************************************************** Private Sub UserForm_Initialize() Colonne = 24 'Variable qui définit la 24e colonne Do While Sheets("Paramètres").Cells(4, Colonne).Value <> "" frmInsertMod.cmbBoxTeam1.AddItem Sheets("Paramètres").Cells(4, Colonne).Value frmInsertMod.cmbBoxTeam2.AddItem Sheets("Paramètres").Cells(4, Colonne).Value Colonne = Colonne + 1 Loop End Sub ' ******************************************************* ' Procédure pour modifier les données de cmbBoxEmet en ' fonction de cmbBoxTeam1 ' ******************************************************* Private Sub cmbBoxTeam1_Change() i = 24 'Variable qui définit la 24e colonne frmInsertMod.cmbBoxEmet.Clear Do While Sheets("Paramètres").Cells(4, i).Value <> "" If Sheets("Paramètres").Cells(4, i).Value = cmbBoxTeam1.Value Then Colonne = Sheets("Paramètres").Cells(4, i).Column End If i = i + 1 Loop j = 6 Do While Sheets("Paramètres").Cells(j, Colonne).Value <> "" frmInsertMod.cmbBoxEmet.AddItem Sheets("Paramètres").Cells(j, Colonne) j = j + 1 Loop frmInsertMod.cmbBoxEmet.ListIndex = 0 End Sub ' ******************************************************* ' Procédure pour modifier les données de cmbBoxAgQua en ' fonction de cmbBoxTeam2 ' ******************************************************* Private Sub cmbBoxTeam2_Change() i = 24 'Variable qui définit la 24e colonne frmInsertMod.cmbBoxAgQua.Clear Do While Sheets("Paramètres").Cells(4, i).Value <> "" If Sheets("Paramètres").Cells(4, i).Value = cmbBoxTeam2.Value Then Colonne = Sheets("Paramètres").Cells(4, i).Column End If i = i + 1 Loop j = 6 Do While Sheets("Paramètres").Cells(j, Colonne).Value <> "" frmInsertMod.cmbBoxAgQua.AddItem Sheets("Paramètres").Cells(j, Colonne) j = j + 1 Loop frmInsertMod.cmbBoxAgQua.ListIndex = 0 End Sub
yg_be
Messages postés
23444
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 janvier 2025
1 560
31 janv. 2019 à 14:02
31 janv. 2019 à 14:02
je pense que tu peux remplacer
par
Colonne = Sheets("Paramètres").Cells(4, i).Column
par
Colonne = i
DESTIN8TE
Messages postés
35
Date d'inscription
lundi 14 janvier 2019
Statut
Membre
Dernière intervention
15 février 2019
31 janv. 2019 à 15:33
31 janv. 2019 à 15:33
Oui je peux et c'est ce que j'ai fait, c'est juste un mauvais copier coller.
18 janv. 2019 à 16:04
Les "X" correspondes à des employées.
J'ai commencé à pouser mes connaissances en Excel il y a peu et ça fait deux semaines que je fais du VBA.
18 janv. 2019 à 16:12
tu as écrit "je ne récupère qu'une seule équipe": laquelle?
21 janv. 2019 à 09:11
Question : Tu n'as pas répondu à ma question propos du nom "Equipe". C'est le contenu de la celulle A1, c'est tout?
Réponse : Le screen tout simplement où on voit les équipes. Et comme je l'ai indiqué, Equipe est une liste.
"Seulement la liste Equipe" Ligne 13 du premier post
Question : Tu as écrit "Je ne récupère qu'une seule équipe": laquelle ?
Réponse : "Je ne récupère qu'une seule équipe, c'est-à-dire la première (screen) alors que j'en ai 6 en tout" Ligne 14 du premier post
N'hésite(z) pas à poser des questions encore si ce n'est pas clair.
Modifié le 21 janv. 2019 à 09:42
Quel est le nom de l'équipe que tu récupères? De quelle cellule vient-il?
Je viens de lire https://forums.commentcamarche.net/forum/affich-35805427-recuperation-de-l-annee-d-une-cellule-au-format-yy-et-concatenation#18, prévois-tu de t'excuser?
Modifié le 21 janv. 2019 à 10:29
Réponse : Le gestionnaire de noms et grâce à cela Equipe récupère "Eq_D01", "Eq_D02", etc... et ça marche car dans le classeur on fait appel au nom Equipe et nous donne la liste contenant "Eq_D01", "Eq_D02", etc... et en fonction de l'équipe il nous donne les employés correspondant à son équipe dans une autre cellule et maintenant je voudrais utiliser la liste dans le formulaire ce que j'ai fait mais qui ne fonctionne pas car je récupère seulement Eq_D01 et même si le champ est vide ou non j'ai toujours les même employés, c'est-à-dire l'équipe Eq_D01, dans emetteur
Question : C'est bien dans la cellule A1 que se trouve le nom "Equipe"?
Réponse : Sur mon fichier non, ce serait ça qui pose problème ?
Question : Quel est le nom de l'équipe que tu récupères?
Réponse : Eq_D01.
Question : De quelle cellule vient-il ?
Réponse : Equipe ? Cellule V2
Question : Prévois-tu de t'excuser ?
Réponse : Après ça ?
NON, pourquoi ? Quand on aura du respect, moi j'en aurai.
PS : Je le répète ce n'est pas moi qui est commencé ce fichier moi je suis là juste pour coder ce formulaire qui au lieu d'insérer les données directement sur le classeur, on passe par un formulaire donc TOUTE les informations sont déjà inscrite, j'ai juste à les récupérer par la suite mais c'est là le soucis.