Récuperer le contenu d'une ComboBox

PierreSBC

XLDnaute Nouveau
Bonjour à toutes et à tous,

Malgré de nombreuses recherches sur différents forum je n'ai malheureusement pas trouvé de solution à mon problème. C'est pourquoi j'ai décidé de poster pour la première fois ici.

Dans mon classeur Excel j'ai un bouton qui me permet d'ouvrir un UserForm. Dans cet UserForm j'ai plusieurs ComboBox avec des propositions de réponses sous forme de liste déroulante : jusque là tout va bien !

En bas de mon UserForm j'ai un bouton "Annuler" qui quitte l'UserForm, et j'ai un bouton "Ajouter" que je n'arrive pas à paramétrer.

Je pense que vous vous en doutez, j'aimerai sauvegarder les choix fais par l'utilisateur dans chaque ComboBox dans différentes cellules lorsqu'il clique sur le bouton "Ajouter" de mon UserForm.

Ci joint une capture d'écran de mon UserForm. Chaque texte (ex : Mustela, Master C, ...) affiché dans les différentes ComboBox est le résultat d'une sélection dans une liste déroulante.

J'espère que vous pourrez m'aider à résoudre mon problème.

Je vous remercie d'avance pour le temps que vous m'accorderez.

Pierre.
 

Pièces jointes

  • aaaaa.JPG
    aaaaa.JPG
    27.5 KB · Affichages: 48
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Si au lieu d'être alimentées par des listes externes les ComboBox pouvaient être alimentées automatiquement d'après ce qui existe déjà dans le tableau, je vous conseillerais bien d'utiliser un objet ComboBoxLiées.
Remarquez, il est possible en principe de lui faire fusionner des listes externes à celles prises de la base.
 

Pièces jointes

  • CBxL.xlsm
    106.4 KB · Affichages: 41

PierreSBC

XLDnaute Nouveau
Bonjour.
Si au lieu d'être alimentées par des listes externes les ComboBox pouvaient être alimentées automatiquement d'après ce qui existe déjà dans le tableau, je vous conseillerais bien d'utiliser un objet ComboBoxLiées.
Remarquez, il est possible en principe de lui faire fusionner des listes externes à celles prises de la base.

Bonjour,

Tout d'abord merci pour votre réponse.

Mes ComboBox sont alimentées par des valeurs contenues dans une feuilles de mon classeur. Je ne vois pas ce que vous voulez dire par "être alimentées automatiquement d'après ce qui existe deja dans le tableau".
 

Dranreb

XLDnaute Barbatruc
Je veux dire par là que l'objet ne s'inspire normalement que d'une seule source qui est le tableau à consulter ou à mettre à jour. Il s'occupe entièrement de constituer d'après ce qui existes dans les colonne qui leurs sont associées des listes classées, sans doublon et restreintes aux valeurs compatibles avec les choix déjà effectués.
Mais s'il faut pouvoir créer une nouvelle combinaison de valeurs existant dans des lignes différentes, il est possible de le Stopper, ce qui lui fait proposer des listes de tout ce qui existe indépendamment dans chaque colonne. Il est aussi possible de corriger un truc pour y ajouter des valeurs qui n'existent pas encore dans la base.
 
Dernière édition:

PierreSBC

XLDnaute Nouveau
Je veux dire par là que l'objet ne s'inspire normalement que d'une seule source qui est le tableau à consulter ou à mettre à jour. Il s'occupe entièrement de constituer d'après ce qui existes dans les colonne qui leurs sont associées des listes classées, sans doublon et restreintes aux valeurs compatibles avec les choix déjà effectués.

Actuellement chaque ComboBox n'a qu'une seule source qui est une colonne pour chacune d'entre elle. Lorsque je rajoute une valeur dans la colonne A, je retrouve la valeur dans la ComboBox1 de mon UserForm.

Je ne vois pas encore le rapport entre la source de mes ComboBox et le fait que je veuille récupérer la valeur de la ComboBox, est ce que vous voulez dire que lorsque je veux récuperer cette valeur il est obligé d'aller puiser dans sa source? Il n'a pas de "mémoire" où je peux lui dire de renvoyer une valeur?

Je vous joint le fichier pour que vous y voyiez plus clair ;)

Merci !
 

Pièces jointes

  • Classeur1.xlsm
    24.2 KB · Affichages: 53

Dranreb

XLDnaute Barbatruc
Si ça n'a aucun intérêt de tout baser sur le Tableau1 laissez tomber.
Faites comme ça :
VB:
Private Sub CommandButton1_Click()
Dim T(1 To 1, 1 To 4)
T(1, 1) = ComboBox2.Text
T(1, 2) = ComboBox3.Text
T(1, 3) = ComboBox1.Text
T(1, 4) = DateValue(ComboBox4.Text & " " & ComboBox5.Text & " " & ComboBox6.Text)
Feuil2.ListObjects("Tableau1").ListRows.Add.Range.Value = T
End Sub
Ça ajoutera une nouvelle ligne en bas du tableau avec les valeurs choisies. Supprimez toutes les lignes vides d'abord, elles ne servent à rien dans un tableau.
 

PierreSBC

XLDnaute Nouveau
Si ça n'a aucun intérêt de tout baser sur le Tableau1 laissez tomber.
Faites comme ça :
VB:
Private Sub CommandButton1_Click()
Dim T(1 To 1, 1 To 4)
T(1, 1) = ComboBox2.Text
T(1, 2) = ComboBox3.Text
T(1, 3) = ComboBox1.Text
T(1, 4) = DateValue(ComboBox4.Text & " " & ComboBox5.Text & " " & ComboBox6.Text)
Feuil2.ListObjects("Tableau1").ListRows.Add.Range.Value = T
End Sub
Ça ajoutera une nouvelle ligne en bas du tableau avec les valeurs choisies. Supprimez toutes les lignes vides d'abord, elles ne servent à rien dans un tableau.

Ca fonctionne parfaitement !! merci beaucoup pour votre aide :)
Les "T(1,1)" etc représentent bien les cellules du tableau (ligne,colonne) ?
 

Dranreb

XLDnaute Barbatruc
Oui. L'image de la propriété Value d'un Range de plusieurs cellules contigües est toujours un tableau à 2 dimensions même quand il n'y a qu'1 ligne ou 1 colonne.
Là on a à faire à un Range représentant une ligne du tableau. En l'occurrence celle qu'on aura ajoutée.
 

PierreSBC

XLDnaute Nouveau
Oui. L'image de la propriété Value d'un Range de plusieurs cellules contigües est toujours un tableau à 2 dimensions même quand il n'y a qu'1 ligne ou 1 colonne.
Là on a à faire à un Range représentant une ligne du tableau. En l'occurrence celle qu'on aura ajoutée.

C'est niquel pour moi ! En plus de fonctionner j'ai bien compris et j'ai réussi à tout réajuster à ma sauce :p
Merci beaucoup pour l'aide Dranreb :)
 

Discussions similaires

  • Question
Microsoft 365 Listbox
Réponses
3
Affichages
237

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350