VBA Excel : Alimenter ComboBox

Résolu/Fermé
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
- 7 août 2012 à 08:39
eriiic
Messages postés
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
- 5 août 2015 à 15:21
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

sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:04
Je n'ai pas propriété RowSource justement.... J'avoue que ça reste un mystère pour moi...

Merci
2
Morgothal
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
7 août 2012 à 08:53
Salut,
Dans la propriété RowSource de la combobox, tu ne peux pas mettre ta zone d'adresses via une zone nommée ?
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 694
7 août 2012 à 09:09
Bonjour
Essaye :
Me.ListeDestinataire.RowSource = "Feuil1!A2:A10"


0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:14
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
0

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

Posez votre question
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 694
7 août 2012 à 09:17
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

0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:25
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 ?
0
Morgothal
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
7 août 2012 à 09:27
0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:31
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 694
7 août 2012 à 09:32
Voici le fichier

Ben non, râté!
mé iléoulefichié
0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:36
pourtant j'ai j'ai cliqué sur le bouton copier le lien lol

Je retente :
http://cjoint.com/12au/BHhjJbPXJ9Y.htm
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 694
7 août 2012 à 09:46
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
0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 09:56
ç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
0
eriiic
Messages postés
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
7 068
Modifié par eriiic le 7/08/2012 à 09:59
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.
-1
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 10:00
????

Pourtant, j'ai bien UserForm1 pour l'userform et ListeDestinataire pour le ComboBox....

Le code de pijaku fonctionne d'ailleurs
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 694
7 août 2012 à 10:02
Salut Eriiic,
ton userform ne s'appelle pas userform1 mais userform
Pas tout à fait d'accord avec toi. La propriété Name de son Userform indique bien UserForm1. Par conséquent, il s'appelle bien UserForm1. Par contre, tu as raison de souligner qu'il convient d'utiliser, dans le menu "général", le terme UserForm pour l'appliquer comme suit :
Private Sub Userform_Activate()
Yapa de Userform1.
Ensuite, sa Combobox s'appele bien ListeDestinataire. La Combobox1 est là à titre d'essai je penses...

Mais sur le code, tu as amplement raison, je n'ai pas poussé assez loin (toi si.) et ton code fonctionne impec :
Private Sub UserForm_Activate()
Sheets("Adresses").Select
ListeDestinataire.List = Range("A3:A" & Cells(Application.Rows.Count, 1).End(xlUp).Row).Value
End Sub
0
eriiic
Messages postés
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
7 068
Modifié par eriiic le 7/08/2012 à 10:04
Oui, d'ailleurs il utilises UserForm_Initialize et non UserForm1_Initialize...
Et ça doit marcher également avec .activate
(j'ai vu l'autre combobox ListeDestinataire)

eric
0
sifusalade
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
7 août 2012 à 10:09
Le problème est résolue. Mais si cela peux en aider certains. Cela ne marche pas avec Activate mais avec Initialize oui. (Enfin du moins pour moi en tout cas).
Toutes mes excuses eriiic, le ComboBox1 n'étais là que pour faire un test, mais j'ai oublié de l'enlever. Désolé
0
eriiic
Messages postés
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
7 068
Modifié par eriiic le 7/08/2012 à 10:12
Cela ne marche pas avec Activate .
Si, j'ai testé mon code, confirmé par pijaku (salut au passage :-) )

eric
0