Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Alimenter une combobox sur une feuille de calcul

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dgil37

XLDnaute Nouveau
Bonjour,

Je travaille sur un projet dans le but de renseigner les données d'un imprimé destiné à être sauvegardé et ou imprimé.

Dans la partie gauche du fichier de travail, qui fonctionne, je renseigne les champs de l'imprimé à l'aide d'une liste via 'validation de données' générée à partir du tableau1.

Le problème se situe dans la partie droite ou je souhaiterai faire la même chose à l'aide d'un combobox afin de l'adopter pour la solution finale.

Pour alimenter la ComboBox sur la feuille de calcul (je ne souhaite pas passer par un userform) une procédure s’exécute pour l'instant à l'ouverture du classeur. Celle-ci me renvoie le message d'erreur 'erreur424 et ou 1004' et sous toute réserve que le reste soit bon.

Je n'ai pas trouvé la solution avec les recherches que j'ai effectuées. Je m'en retourne donc vers le forum.

Merci d'avance à tous ceux et celles pour votre aide.
 

Pièces jointes

Solution
Suite à mon post #2 notez qu'il est beaucoup plus simple d'écrire :
VB:
Private Sub Workbook_Open()
Feuil1.ComboBox1.List = [Tableau1[Nom]].Resize(, 2).Value 'au moins 2 éléments
End Sub
Et ce n'est pas votre post #4 qu'il faut noter comme solution mais mon post #2 ou #5.
Bonjour dgil37,

Vous pouvez utiliser :
VB:
Private Sub Workbook_Open()

Dim TS As ListObject
Set TS = [Tableau1].ListObject

If TS.DataBodyRange Is Nothing Then Exit Sub

Dim tableData As Range
Set tableData = TS.DataBodyRange

Dim itemList As Range
Set itemList = tableData.Columns(2)

Dim i As Long
For i = 1 To tableData.Rows.Count
    Feuil1.ComboBox1.AddItem itemList.Cells(i)
Next i

End Sub
A+
 
Bonjour Dgil, Job,
Quelle utilité de mettre un Combobox sur une feuille pour y mettre une liste de noms ?
On peut utiliser plus simplement une liste déroulante qui ne requiert aucune macro :
1- Dans Données appeler B2:B8 par exemple avec ListeNoms
2- Dans Imprimé F2 mettre une liste déroulante avec : =ListeNoms
En ajoutant un nom dans le liste de Données, il sera pris en compte dans la liste déroulante.
 

Pièces jointes

Bonjour job75.

Merci pour ta solution. Çà fonctionne parfaitement.

Juste après avoir posté mon message, les discussions similaires se sont actualisées et affiche une solution de NONO14 pour ms365.
Je voulais savoir, pour info, si le code pour ms365 est compatible avec ms exel2016.

Je reste sur ta solution qui me convient parfaitement.
 
Suite à mon post #2 notez qu'il est beaucoup plus simple d'écrire :
VB:
Private Sub Workbook_Open()
Feuil1.ComboBox1.List = [Tableau1[Nom]].Resize(, 2).Value 'au moins 2 éléments
End Sub
Et ce n'est pas votre post #4 qu'il faut noter comme solution mais mon post #2 ou #5.
 
Dernière édition:
En effet, en une seule ligne le travail est fait.

Bravo et encore merci.
En effet, comme toujours la solution de job75 correspond parfaitement à la demande effectuée. Mais, juste par curiosité, tu n'as pas répondu à la question de sylvanu : pourquoi veux-tu une ComboBox plutôt qu'une simple liste de validation ?

Est-ce pour avoir la petite flèche tout le temps visible ?
Est-ce pour la saisie ?
Est-ce pour autre(s) chose(s) ?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…