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

Comment nourrir une ComboBox !

9 réponses
Avatar
Philou36
Bonjour les amis !
Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais savoir
comment il fallait procéder pour renseigner une ComboBox. J'ai une Combo où
je dois renseigner des périodes.
Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai deja sur un
tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
De plus, je veux indiquer le premier et le dernier jour de la période
sélectionné dans des zones de texte pour qu'ils soient modifiable. Est ce
possible ?
Etant donné mon niveau, n'hesitez pas à détailler votre réponse si c'est pas
abusé.
Un grand merci par avance pour votre aide.
Bonne journée
Philippe

9 réponses

Avatar
LSteph
Bonjour,

Il y a plein de façons:

A-Utiliser RowSource (attention en direct c'est une plage verticale)
1-En dur dans l'objet :
regarde dans les propriétés de ta Combobox tu trouve cette propriét é
Dans la Fenêtre des propriétés tu mets l'adresse en face exemple
A2:A21

2-En dur dans le code:
Private Sub UserForm_Initialize()
Combobox1.RowSource="A2:A21"
End Sub

3- Plus souple une plage nommée periode pour la même plage ou une
plage qui peut tantôt varier
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "periode"
End Sub

4- en boucle sur une autre plage (pour varier)
'
dim c as range
Combobox1.clear
For each c in [b1:z1]
Combobox1.additem c
next

5-autre type de boucle

dim i as long
With [periodes].cells
for i = 1 to .count
Combobox1.additem .item(i)
next
end with

6-Plus dynamique en générant directement les périodes:

Private Sub UserForm_Initialize()
Dim i As Integer

For i = 20 To 1 Step -1
ComboBox1.AddItem Format(DateSerial(Year(Date), Month(Date) - i, 1),
"mmm-yyyy")
Next

End Sub


'Et doit y avoir encore 36 façons


--
lSteph


On 5 oct, 05:49, "Philou36" wrote:
Bonjour les amis !
Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais savo ir
comment il fallait procéder pour renseigner une ComboBox. J'ai une Comb o où
je dois renseigner des périodes.
Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai deja sur un
tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
De plus, je veux indiquer le premier et le dernier jour de la période
sélectionné dans des zones de texte pour qu'ils soient modifiable. Es t ce
possible ?
Etant donné mon niveau, n'hesitez pas à détailler votre réponse s i c'est pas
abusé.
Un grand merci par avance pour votre aide.
Bonne journée
Philippe


Avatar
LSteph
..j'oubliais pour tes textbox donc sans utiliser de plage, exemple:

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
TextBox1 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1)),
1)
TextBox2 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1))
+ 1, 0)

End If
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer

For i = 24 To 1 Step -1
ComboBox1.AddItem Format(DateSerial(Year(Date), Month(Date) - i, 1),
"mmm-yyyy")
Next

End Sub

'lSteph

On 5 oct, 05:49, "Philou36" wrote:
Bonjour les amis !
Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais savo ir
comment il fallait procéder pour renseigner une ComboBox. J'ai une Comb o où
je dois renseigner des périodes.
Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai deja sur un
tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
De plus, je veux indiquer le premier et le dernier jour de la période
sélectionné dans des zones de texte pour qu'ils soient modifiable. Es t ce
possible ?
Etant donné mon niveau, n'hesitez pas à détailler votre réponse s i c'est pas
abusé.
Un grand merci par avance pour votre aide.
Bonne journée
Philippe


Avatar
LSteph
..petite rectif aucas ou on réefface le contenu de combobox1

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
TextBox1 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1)),
1)
TextBox2 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1))
+ 1, 0)
Else
TextBox1 = ""
TextBox2 = ""
End If
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer

For i = 24 To 1 Step -1
ComboBox1.AddItem Format(DateSerial(Year(Date), Month(Date) - i, 1),
"mmm-yyyy")
Next

End Sub


On 5 oct, 05:49, "Philou36" wrote:
Bonjour les amis !
Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais savo ir
comment il fallait procéder pour renseigner une ComboBox. J'ai une Comb o où
je dois renseigner des périodes.
Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai deja sur un
tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
De plus, je veux indiquer le premier et le dernier jour de la période
sélectionné dans des zones de texte pour qu'ils soient modifiable. Es t ce
possible ?
Etant donné mon niveau, n'hesitez pas à détailler votre réponse s i c'est pas
abusé.
Un grand merci par avance pour votre aide.
Bonne journée
Philippe


Avatar
isabelle
bonjour Philippe ,

voici un petit exemple : http://cjoint.com/?kfrdeWS3ny

isabelle

Philou36 a écrit :
Bonjour les amis !
Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais savoir
comment il fallait procéder pour renseigner une ComboBox. J'ai une Combo où
je dois renseigner des périodes.
Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai deja sur un
tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
De plus, je veux indiquer le premier et le dernier jour de la période
sélectionné dans des zones de texte pour qu'ils soient modifiable. Est ce
possible ?
Etant donné mon niveau, n'hesitez pas à détailler votre réponse si c'est pas
abusé.
Un grand merci par avance pour votre aide.
Bonne journée
Philippe





Avatar
LSteph
Bonjour Isabelle,

..si en plus faut faire le boulot!
;o))

..alors (code voir plus bas) selon ce que j'ai cru comprendre avec
retour dans une feuille:

http://cjoint.com/?kfr1oG1c8F


--
lSteph
''''''''''

Option Explicit

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
TextBox1 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1)),
1)
TextBox2 = DateSerial(Year(CDate(ComboBox1)), Month(CDate(ComboBox1))
+ 1, 0)
CommandButton1.Enabled = True
Else
TextBox1 = ""
TextBox2 = ""
CommandButton1.Enabled = False
End If
End Sub

Private Sub CommandButton1_Click()
With [a65536].End(xlUp)(2)
.Value = TextBox1
.Offset(0, 1) = TextBox2
End With
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer

For i = 24 To 1 Step -1
ComboBox1.AddItem Format(DateSerial(Year(Date), Month(Date) - i, 1),
"mmm-yyyy")
Next
CommandButton1.Enabled = False
End Sub


On 5 oct, 17:04, isabelle wrote:
bonjour Philippe ,

voici un petit exemple :  http://cjoint.com/?kfrdeWS3ny

isabelle

Philou36 a écrit :



> Bonjour les amis !
> Voilà aujourd'hui je me lance dans les formulaires ! Et je voulais sa voir
> comment il fallait procéder pour renseigner une ComboBox. J'ai une Co mbo où
> je dois renseigner des périodes.
> Les 24 mois qui précèdent le mois en cours. Cette liste je l'ai dej a sur un
> tableau. Puis je la rapatrier dans ma Combo dans mon formulaire ?
> De plus, je veux indiquer le premier et le dernier jour de la période
> sélectionné dans des zones de texte pour qu'ils soient modifiable. Est ce
> possible ?
> Etant donné mon niveau, n'hesitez pas à détailler votre réponse si c'est pas
> abusé.
> Un grand merci par avance pour votre aide.
> Bonne journée
> Philippe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
isabelle
salut LSteph,

LSteph a écrit :
Bonjour Isabelle,
selon ce que j'ai cru comprendre avec retour dans une feuille:



je voie que notre compréhension de la chose est très différente, on
verra bien la suite ;-)

isabelle
Avatar
LSteph
Comme cela il aura le choix et peut voir plusieurs aspects...
(..pourquoi ne pas ajouter ton code sous le post ..une fois les cjoint
passés il restera l'essentiel)

Bises respectueuses.

lSteph

On 5 oct, 18:05, isabelle wrote:
salut LSteph,

LSteph a écrit :>  Bonjour Isabelle,
>  selon ce que j'ai cru comprendre avec retour dans une feuille:

je voie que notre compréhension de la chose est très différente, on
verra bien la suite ;-)

isabelle


Avatar
isabelle
et pourquoi pas, le voici,
bisou,
isabelle
'____________________________________________________
Private Sub ComboBox1_Change()
Me.ComboBox1 = Format(Me.ComboBox1, "yyyy-mm-dd")
End Sub

Private Sub ComboBox2_Change()
Me.ComboBox2 = Format(Me.ComboBox2, "yyyy-mm-dd")
End Sub

Private Sub ComboBox3_Change()
Me.ComboBox3 = Format(Me.ComboBox3, "yyyy-mm-dd")
End Sub

Private Sub CommandButton1_Click()
debut =
Sheets("Feuil1").Range("plg").Find(What:Íate(Me.ComboBox2)).Address
fin = Sheets("Feuil1").Range("plg").Find(What:Íate(Me.ComboBox3)).Address
ComboBox1.RowSource = "Feuil1!" & debut & ":" & fin
End Sub

Private Sub UserForm_Initialize()
ComboBox2.RowSource = "Feuil1!" & Range("plg").Address
ComboBox3.RowSource = "Feuil1!" & Range("plg").Address
End Sub
'____________________________________________________

LSteph a écrit :
Comme cela il aura le choix et peut voir plusieurs aspects...
(..pourquoi ne pas ajouter ton code sous le post ..une fois les cjoint
passés il restera l'essentiel)

Bises respectueuses.

lSteph




Avatar
Philou36
Bonjour,

Un grand merci à vous Isabelle et LSteph. Il va m'en falloir du temps pour
décortiquer tous ces message et exemple.
C'est juste génial ce que vous avez fait pour moi ! j'en demandais pas tant
!
Un grand grand merci à tous les deux !
Bonne soirée
Philippe
"isabelle" a écrit dans le message de news:

et pourquoi pas, le voici,
bisou,
isabelle
'____________________________________________________
Private Sub ComboBox1_Change()
Me.ComboBox1 = Format(Me.ComboBox1, "yyyy-mm-dd")
End Sub

Private Sub ComboBox2_Change()
Me.ComboBox2 = Format(Me.ComboBox2, "yyyy-mm-dd")
End Sub

Private Sub ComboBox3_Change()
Me.ComboBox3 = Format(Me.ComboBox3, "yyyy-mm-dd")
End Sub

Private Sub CommandButton1_Click()
debut =
Sheets("Feuil1").Range("plg").Find(What:Íate(Me.ComboBox2)).Address
fin =
Sheets("Feuil1").Range("plg").Find(What:Íate(Me.ComboBox3)).Address
ComboBox1.RowSource = "Feuil1!" & debut & ":" & fin
End Sub

Private Sub UserForm_Initialize()
ComboBox2.RowSource = "Feuil1!" & Range("plg").Address
ComboBox3.RowSource = "Feuil1!" & Range("plg").Address
End Sub
'____________________________________________________

LSteph a écrit :
Comme cela il aura le choix et peut voir plusieurs aspects...
(..pourquoi ne pas ajouter ton code sous le post ..une fois les cjoint
passés il restera l'essentiel)

Bises respectueuses.

lSteph