5 combobox avec listes différentes. 1 seule cellule a remplir selon choix

Résolu/Fermé
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020 - 13 févr. 2020 à 15:08
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 - 21 févr. 2020 à 15:39
Bonjour,
Je souhaite remplir une cellule (AI) via une combobox.
J'ai 6 combo différentes. je les rend apparentes unitairement après avoir fait le choix d'une de ces dernières dans une autre combo.
Mon codage n'est pas bon et n'accepte que les valeurs d'une seule liste, en l'occurence la dernière dans le codage.

Private Sub BtnAjout_Click()
Dim g As Integer
g = Range("AH" & Rows.Count).End(xlUp).Row
Range("AH" & g + 1).Value = ComboBox6
Range("AI" & g + 1).Value = ComboBox7
Range("AI" & g + 1).Value = ComboBox14
Range("AI" & g + 1).Value = ComboBox17
Range("AI" & g + 1).Value = ComboBox16
Range("AI" & g + 1).Value = ComboBox15
Range("AI" & g + 1).Value = ComboBox18
Range("AJ" & g + 1).Value = ComboBox8
Range("AK" & g + 1).Value = ComboBox9
Range("AL" & g + 1).Value = TextBox2
Range("AM" & g + 1).Value = ComboBox12
Range("AN" & g + 1).Value = ComboBox10
Range("AO" & g + 1).Value = TextBox1


'Remet toutes les fenêtres des infos à O après saisie et click (FORMULE VALIDE)
ComboBox7 = ""
ComboBox8 = ""
ComboBox9 = ""
ComboBox10 = "-"
ComboBox14 = ""
ComboBox15 = ""
ComboBox16 = ""
ComboBox18 = ""
ComboBox18 = ""
TextBox1 = "-"
TextBox2 = "-"
MsgBox "Les informations saisies ont bien été enregistrées. Merci."
End Sub

Les combo concernées sont les 7-14-15-16-17-18
Je pense qu'elles sont "lues" l'une après l'autre et que la dernière efface l'avant dernière et ainsi de suite...
Quelqu'un pourrait-il corriger ce défaut afin que la cellule puisse récupérer par exemple la valeur de la combo16 si cette dernière a été choisie?

Merci pour votre aide.
A voir également:

7 réponses

yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 Ambassadeur 1 559
20 févr. 2020 à 00:07
bonjour, je ne comprends pas.
AI est une colonne, pas une cellule.
tu commences par écrire "une combobox", puis, à la ligne suivante, il y en a 6.
n'imagine surtout pas que ton code va nous aider à comprendre ce que tu veux obtenir.
1
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
20 févr. 2020 à 17:38
Bonjour,
Effectivement, AI n'est pas une cellule, désolé...
C'est effectivement une colonne. Je souhaite juste remplir automatiquement un tableau (appelé "ListeSource" dans "Tableau de bord").
Pour toutes les autres colonnes "AH >AO" sauf AI, les codes fonctionnent et le tableau se remplit normalement.
Comme je l'explique plus haut, je suis confronté pour le remplissage de cette colonne à un choix multiple de listes déroulantes ayant bien sur, des codes différents. Chaque liste représente un "groupe de travail différent" (Business Unit). Le trop grand nombre de références m’empêche de n'avoir qu'une liste (trop lourde et démotivante pour les potentiels utilisateurs).

Je te joins mon fichier afin de mieux comprendre ma problématique.
https://mon-partage.fr/f/c7m4NHic/

PS : j'avais mis mon code mais sans grand espoir... vues mes connaissances, je préfère jouer l'humilité.
Merci pour ton aide.
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
20 févr. 2020 à 18:08
J'ai juste oublié de préciser que toutes les références, qu'importe la liste déroulante d'où elles proviennent, doivent venir alimenter les cellules de la colonne AI.
0
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 Ambassadeur 1 559
20 févr. 2020 à 21:56
veux-tu que la cellule en AI récupère la valeur d'une des combobox 7-14-15-16-17-18, une où il y a une valeur non nulle?
0
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 1 559
20 févr. 2020 à 23:51
veux-tu que la cellule en AI récupère la valeur d'une des combobox 7-14-15-16-17-18, une où il y a une valeur non nulle?
si c'est cela, une suggestion, avec juste 7 et 14:
If Me.ComboBox7 <> "" Then
    Range("AI" & g + 1).Value = Me.ComboBox7
ElseIf Me.ComboBox14 <> "" Then
    Range("AI" & g + 1).Value = Me.ComboBox14
End If
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
21 févr. 2020 à 11:01
Bonjour,
Je pense que tu as bien cerné ma problématique.
Effectivement, je cherche à récupérer en AI la valeur d'une des 6 combobox où il y a une valeur non nulle.

Comme tu peux le constater dans le tableau, cette colonne collecte les divers codes produits de chaque BU. Les autres valeurs sont communes (dates, code client, prix, etc...).

Le formulaire ne permettra que de saisir des valeurs correspondantes à la BU sélectionnée (par l'intermédiaire de la combobox6). Je vais mettre les 6 combo les unes sur les autres et, seule apparaitra la liste déroulante sélectionnée par la combo6.

Merci encore pour ton aide. Je dois présenter un fichier fini à mon boss la semaine prochaine. Je pense qu'on y sera.
0
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 1 559
21 févr. 2020 à 11:54
as-tu pu adapter ma suggestion pour finaliser?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
21 févr. 2020 à 13:51
Génial ! Ça fonctionne apparemment très bien !
Je suppose qu'il me faut ajouter le même code pour les autres combo dont je veux extraire les codes ?
0
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 1 559
21 févr. 2020 à 14:16
exact, tu rajoutes des copies des lignes 3 et 4 avant la ligne 5.
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
21 févr. 2020 à 15:05
Je reprends tes codes

If Me.ComboBox7 <> "" Then
Range("AI" & g + 1).Value = Me.ComboBox7
ElseIf Me.ComboBox14 <> "" Then
Range("AI" & g + 1).Value = Me.ComboBox14
End If

J'ai compris qu'il faut rajouter avant End If. Par contre pour les combos supplémentaires, je dois commencer pour chaque par "ElseIf" ?
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
21 févr. 2020 à 15:20
Inutile de répondre à ma question précédente.

CA MARCHE !!!!

Je ne peux que dire Merci, merci, merci.
0
yg_be Messages postés 23440 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 janvier 2025 1 559
21 févr. 2020 à 15:39
parfait, peux-tu alors marquer la discussion comme résolue?
0