VBA Excel : Alimenter ComboBox [Résolu/Fermé]

Signaler
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
-
Messages postés
24023
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 avril 2021
-
Bonjour,

J'ai créé un UserForm avec un ComboBox. Ce que je veux, c'est alimenter ce ComboBox avec une liste d'adresses qui sont contenue dans une feuille nommé "Adresses".

Je n'arrive absolument pas à l'alimenter, quoi que je fasse, cette liste reste vide.

Private Sub UserForm1_Activate()
Sheets("Adresses").Select
Me.ListeDestinataire.RowSource = "a3:" & Range("a3").End(xlDown).Address
(j'ai essayé .Range aussi)
End Sub


J'ai même essayé de créer une variable
Dim SourceDestinataire as Range
Me.ListeDestinataire.RowSource = SourceDestinataire


Mais rien à faire, dès que je fais dérouler ce ComboBox, il reste vide

Ce qui est étrange, c'est que lorsque je tape
Me.ListeDestinataire.
je n'ai pas RowSource dans la liste de propositions possibles.... Cependant je n'ai aucune erreur....

Je précise que ListeDestinataire est le nom que j'ai donné au ComboBox.

En vous remerciant par avance. Merci beaucoup


9 réponses

Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
171
Salut,
Dans la propriété RowSource de la combobox, tu ne peux pas mettre ta zone d'adresses via une zone nommée ?
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
Je n'ai pas propriété RowSource justement.... J'avoue que ça reste un mystère pour moi...

Merci
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
Bonjour
Essaye :
Me.ListeDestinataire.RowSource = "Feuil1!A2:A10"


Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
J'ai déjà essayé... ça marche pas
Me.ListeDestinataire.RowSource = "Adresses!A3:A10"


J'ai même essayé de remplacer
Me
par
Userform1


UserForm1 étant le nom mon UserForm
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
Continuons à l'aveuglette, mais une copie sans données confidentielles de ton classeur nous aiderait grandement.

A essayer :
Private Sub UserForm1_Activate()
Dim Lig As Integer, drLig As Integer
With Sheets("Adresses")
    drLig = . Range("a3").End(xlDown).Row
    For Lig = 3 To drLig
        Me.ListeDestinataire.AddItem .Range("A" & Lig)
    Next Lig
End With
End Sub

Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
Je viens d'essayer, ça ne marche toujours pas. Dommage je n'avez pas encore essayé ça, j'avais espoir lol

Je vais envoyé le fichier, comment je fais ?
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
171
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
Voici le fichier

Ben non, râté!
mé iléoulefichié
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
pourtant j'ai j'ai cliqué sur le bouton copier le lien lol

Je retente :
http://cjoint.com/12au/BHhjJbPXJ9Y.htm
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
Il faut placer cette procédure, non pas dans l'événement Activate de ton Userform, mais dans l'événement Initialize :
Private Sub UserForm_Initialize()
Dim Lig As Integer, drLig As Integer

With Sheets("Adresses")
    drLig = .Range("a3").End(xlDown).Row
    For Lig = 3 To drLig
        Me.ListeDestinataire.AddItem .Range("A" & Lig)
    Next Lig
End With
End Sub
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
ça marche !!!!!!!!!!
Merci beaucoup pijaku !!!! T'as de la chance de pas être à côté de moi je t'embrasserai lol

Me manque plus qu'à régler mon problème de format de date (je veux qu'en tapant 12/2 par exemple, il m'insère 12 fev 2012, pour l'instant il me met 2 dec 2012)... mais je vais me débrouiller

Merci beaucoup
Messages postés
24023
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 avril 2021
6 744
Re,

- ton userform ne s'appelle pas userform1 mais userform (rajoute le sub en passant par la liste déroulante en haut et tu verras).
- ton combobox ne s'appelle pas ListeDestinataire mais combobox1
Et j'insiste, utilise plutôt .list que rowsource.

Private Sub UserForm_Activate()   
    Sheets("Adresses").Select   
    ComboBox1.List = Range("A3:A" & Cells(Application.Rows.Count, 1).End(xlUp).Row).Value   
End Sub

eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Messages postés
24023
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 avril 2021
6 744
Cela ne marche pas avec Activate .
Si, j'ai testé mon code, confirmé par pijaku (salut au passage :-) )

eric
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
Sissi! Ca fonctionne aussi avec
Private Sub UserForm_Activate()
Messages postés
133
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
24 mars 2020
5
Ah bon oui dis-donc !!!! 1000 excuses. ça ne marchais parce que j'avais sans faire exprès mis
Private Sub UserForm1_Activate()

Mais sans le "1" ça marche
Messages postés
1
Date d'inscription
mercredi 5 août 2015
Statut
Membre
Dernière intervention
5 août 2015

Bonjour,
dans ta feuille "Adresse" renomme la plage de données à afficher dans le combobox, "noms" par exemple, ensuite

Private Sub Userform1_Initialize()
Combobox1.Rowsource="noms"
End sub

et ça marche
Messages postés
24023
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 avril 2021
6 744
Bonjour,

Tu es nouveau, bienvenue.
Pense à regarder la date avant de répondre.
eric