Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Plage de cellules alimentant une combobox

7 réponses
Avatar
uwaga
Bonjour,

Me voila face a un probleme etrange avec Excel 2007 :

Dans un userform j'ai une combobox dans laquelle je souhaite
selectionner 1 des mois de l'annee.
Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
a N5 pour Decembre.

Dans VBA, je mets en userform_initialize la ligne
Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
passes les 11 autres ???

Merci pour votre aide !

U.

7 réponses

Avatar
Ellimac
Bonjour,

Il faut que ta plage soit verticale et non horizontale.

Camille

"uwaga" a écrit dans le message de news:

Bonjour,

Me voila face a un probleme etrange avec Excel 2007 :

Dans un userform j'ai une combobox dans laquelle je souhaite
selectionner 1 des mois de l'annee.
Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
a N5 pour Decembre.

Dans VBA, je mets en userform_initialize la ligne
Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
passes les 11 autres ???

Merci pour votre aide !

U.



Avatar
LSteph
Bonsoir,

row signifie ligne
c'est trompeur certes
il faut une colonne comme dit cap2
outre la soluce de transposer
on peut remplir:


Private Sub UserForm_Initialize()

Dim c As Range

For Each c In [c5:n5].Cells
begin.AddItem c
Next

End Sub

'lSteph

uwaga a écrit :
Bonjour,

Me voila face a un probleme etrange avec Excel 2007 :

Dans un userform j'ai une combobox dans laquelle je souhaite
selectionner 1 des mois de l'annee.
Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
a N5 pour Decembre.

Dans VBA, je mets en userform_initialize la ligne
Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
passes les 11 autres ???

Merci pour votre aide !

U.


Avatar
LSteph
...désolé c'était Camille, pas cap2

LSteph a écrit :
Bonsoir,

row signifie ligne
c'est trompeur certes
il faut une colonne comme dit cap2
outre la soluce de transposer
on peut remplir:


Private Sub UserForm_Initialize()

Dim c As Range

For Each c In [c5:n5].Cells
begin.AddItem c
Next

End Sub

'lSteph

uwaga a écrit :
Bonjour,

Me voila face a un probleme etrange avec Excel 2007 :

Dans un userform j'ai une combobox dans laquelle je souhaite
selectionner 1 des mois de l'annee.
Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
a N5 pour Decembre.

Dans VBA, je mets en userform_initialize la ligne
Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
passes les 11 autres ???

Merci pour votre aide !

U.




Avatar
Uwaga
Merci a tous les 2 pour votre aide
Avatar
Taupe007
Bonjour
je commence sous excel (vb sous acess)
comment enlever les doublons dans la liste, ranger par ordre alphabétique ne
pas afficher les vides?
et avoir une liste colonne A dont la valeur peut augmenter en fonction des
enregritrements.
merçi par avance de votre réponse.

"LSteph" wrote:

Bonsoir,

row signifie ligne
c'est trompeur certes
il faut une colonne comme dit cap2
outre la soluce de transposer
on peut remplir:


Private Sub UserForm_Initialize()

Dim c As Range

For Each c In [c5:n5].Cells
begin.AddItem c
Next

End Sub

'lSteph

uwaga a écrit :
> Bonjour,
>
> Me voila face a un probleme etrange avec Excel 2007 :
>
> Dans un userform j'ai une combobox dans laquelle je souhaite
> selectionner 1 des mois de l'annee.
> Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
> a N5 pour Decembre.
>
> Dans VBA, je mets en userform_initialize la ligne
> Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)
>
> Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
> passes les 11 autres ???
>
> Merci pour votre aide !
>
> U.



Avatar
LSteph
Bonjour Taupe007,

..de c5 pour janvier à n5 pour décembre,déjà l'ordre serait à respecter
celui des mois et devrait pas y avoir de vide mais supposons une combo
nommée begin en colonne a et un ensemble plus grand:

Sub sansdoublons()
Dim laliste As New Collection
Dim i As Long, c As Range
With laliste
Do While .Count > 0
.Remove 1
Loop
End With
On Error Resume Next
For Each c In [c1:ax1].Cells
If Not IsEmpty(c) Then
laliste.Add c, CStr(c)
End If
Next
On Error GoTo 0
With ActiveSheet.OLEObjects("Begin").Object
.Clear
For i = 1 To laliste.Count
.AddItem laliste(i)
Next
End With
End Sub


'lSteph


Taupe007 a écrit :
Bonjour
je commence sous excel (vb sous acess)
comment enlever les doublons dans la liste, ranger par ordre alphabétique ne
pas afficher les vides?
et avoir une liste colonne A dont la valeur peut augmenter en fonction des
enregritrements.
merçi par avance de votre réponse.

"LSteph" wrote:

Bonsoir,

row signifie ligne
c'est trompeur certes
il faut une colonne comme dit cap2
outre la soluce de transposer
on peut remplir:


Private Sub UserForm_Initialize()

Dim c As Range

For Each c In [c5:n5].Cells
begin.AddItem c
Next

End Sub

'lSteph

uwaga a écrit :
Bonjour,

Me voila face a un probleme etrange avec Excel 2007 :

Dans un userform j'ai une combobox dans laquelle je souhaite
selectionner 1 des mois de l'annee.
Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvier
a N5 pour Decembre.

Dans VBA, je mets en userform_initialize la ligne
Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
passes les 11 autres ???

Merci pour votre aide !

U.






Avatar
lSteph
...
Pour le second cas, non plus liste en ligne c5:ax5,
mais des cellules remplies ou non en colonne A, il suffit d'utiliser
Trier dans le menu
tout sera ainsi dans l'ordre alpha et les vides, soit tous en haut
soit tous en bas selon l'ordre de tri et la prise en compte ou non
dans la matrice de données attenantes dans les colonnes voisines.
Sinon, si la matrice ne doit pas bouger, la copier et la trier à part
par macro, soit dans une autre feuille qu'on ajoute et supprime.
Pour le reste le principe d'alimentation d'une combo ne pose pas plus
de pb, que pour l'exemple en ligne.

Pour identifier la dernière ligne occupée par les données en colonne a
on peut utiliser ceci:
[a65536].end(xlup).row


Cordialement.

--
lSteph



On 10 sep, 19:21, Taupe007 wrote:
Bonjour
je commence sous excel (vb sous acess)
comment enlever les doublons dans la liste, ranger par ordre alphabétiq ue ne
pas afficher les vides?
et avoir une liste colonne A dont la valeur peut augmenter en fonction de s
enregritrements.
merçi par avance de votre réponse.

"LSteph" wrote:
> Bonsoir,

> row signifie ligne
> c'est trompeur certes
> il faut une colonne comme dit cap2
> outre la soluce de transposer
> on peut remplir:

> Private Sub UserForm_Initialize()

> Dim c As Range

> For Each c In [c5:n5].Cells
> begin.AddItem c
> Next

> End Sub

> 'lSteph

> uwaga a écrit :
> > Bonjour,

> > Me voila face a un probleme etrange avec Excel 2007 :

> > Dans un userform j'ai une combobox dans laquelle je souhaite
> > selectionner 1 des mois de l'annee.
> > Cette liste de mois est dans ma feuille, de la cellule C5 pour Janvie r
> > a N5 pour Decembre.

> > Dans VBA, je mets en userform_initialize la ligne
> > Begin.RowSource = "C5:N5" (Begin etant le nom de la combobox)

> > Et pourtant, dans ma liste je ne retrouve que Janvier... Ou sont
> > passes les 11 autres ???

> > Merci pour votre aide !

> > U.