OVH Cloud OVH Cloud

combobox

6 réponses
Avatar
rick
Bonjour,

J'ai une combobox avec :

janv 2005, fevrier 2005,mars 2005,avril 2005......dec 2007

je souhaite faire un combobox dynamique, c'est a dire afficher à chaque fois
3 mois : dec 2004, janvier 2005,fevrier 2005, par rapport à ma date système à
+- 40 jours.

Est ce possible?

6 réponses

Avatar
anonymousA
bonjour,

Private Sub UserForm_Initialize()

datejour = now
datelimbasse = datejour - 40
datelimhaute = datejour + 40

With Me.ComboBox1
.AddItem Format(datelimbasse, "mmm yyyy")
.AddItem Format(datejour, "mmm yyyy")
.AddItem Format(datelimhaute, "mmm yyyy")
End With

End Sub

Mais as-tu seulement cherché ?

A+

Bonjour,

J'ai une combobox avec :

janv 2005, fevrier 2005,mars 2005,avril 2005......dec 2007

je souhaite faire un combobox dynamique, c'est a dire afficher à chaque fois
3 mois : dec 2004, janvier 2005,fevrier 2005, par rapport à ma date système à
+- 40 jours.

Est ce possible?




Avatar
rick
pourquoi tes variables datelimbasse ne sont pas déclaré


bonjour,

Private Sub UserForm_Initialize()

datejour = now
datelimbasse = datejour - 40
datelimhaute = datejour + 40

With Me.ComboBox1
.AddItem Format(datelimbasse, "mmm yyyy")
.AddItem Format(datejour, "mmm yyyy")
.AddItem Format(datelimhaute, "mmm yyyy")
End With

End Sub

Mais as-tu seulement cherché ?

A+

Bonjour,

J'ai une combobox avec :

janv 2005, fevrier 2005,mars 2005,avril 2005......dec 2007

je souhaite faire un combobox dynamique, c'est a dire afficher à chaque fois
3 mois : dec 2004, janvier 2005,fevrier 2005, par rapport à ma date système à
+- 40 jours.

Est ce possible?







Avatar
rick
pourquoi ces:


datejour = Now
datelimbasse = datejour - 30
datelimhaute = datejour + 30

ne sont pas déclarés en variables?


bonjour,

Private Sub UserForm_Initialize()

datejour = now
datelimbasse = datejour - 40
datelimhaute = datejour + 40

With Me.ComboBox1
.AddItem Format(datelimbasse, "mmm yyyy")
.AddItem Format(datejour, "mmm yyyy")
.AddItem Format(datelimhaute, "mmm yyyy")
End With

End Sub

Mais as-tu seulement cherché ?

A+

Bonjour,

J'ai une combobox avec :

janv 2005, fevrier 2005,mars 2005,avril 2005......dec 2007

je souhaite faire un combobox dynamique, c'est a dire afficher à chaque fois
3 mois : dec 2004, janvier 2005,fevrier 2005, par rapport à ma date système à
+- 40 jours.

Est ce possible?







Avatar
Starwing
Bonjour rick,

anonymousA n' a fait que te donner le code pour que tu puisses obtenir une
réponse rapide. Libre à toi maintenant de déclarer les variables...

Starwing
Avatar
MichDenis
Bonjour Rick,

Voici un autre exemple :

'----------------------------------
Dim MaDate As Date

'Ta date système (année, mois, jour)
MaDate = DateSerial(2005, 4, 5)

With Me.ComboBox1
.Clear
.AddItem Format(MaDate - 40, "DD MMM YYYY")
.AddItem Format(MaDate, "DD MMM YYYY")
.AddItem Format(MaDate + 40, "DD MMM YYYY")
End With
'----------------------------------


datejour = date
datelimbasse = datejour - 30
datelimhaute = datejour + 30

Cette exemple ne fonctionne pas car tu n'as pas déclaré le type de ta variable
dim DateJour As Date

Si tu ne déclares par ta variable "DateJour", ta procédure va planter car elle va essayer d'aditionner une chaîne de caractère
représentant la date avec une valeur numérique "5/4/2005" + 40 = "Plantage .


Une variable "Date" représente dans excel aussi une valeur numérique.

Observe ceci :

Msgbox clng(cdate("5/4/2005"))

représente 38476 jours à compter du 1 janvier 1900, qui est le calandrier de mon système d'exploitation défini à partir du menu /
outils / options / calcul /

Dans mon exemple :
La fonction de conversion Cdate(), transforme la chaîne de caractère "5/4/2005" en vrai date
La fonction de conversion Clng() transforme la date en une donnée numérique de type Long 38476

C'est pour cela que l'on peut ajouter ou soustraire des jours +40 ou moins 40 à une variable de type Date, car cette dernière
représente vraiment une valeur numérique. C'est la façon qu'excel exprime les dates que ce soient en VBA ou dans la feuille de
calcul.

Les 2 autres variables utilisées dans ton exemple ne sont pas déclarées... mais comme tu ne fais pas directement de calcul avec
elles, tu les utilises seulement comme récipient. Dans le cas de variables non déclarées, excel leur donne le Type "Variant". Il
est toujours préférable de déclarer ses variables dans une procédure.


Salutations!




"rick" a écrit dans le message de news:
pourquoi ces:


datejour = Now
datelimbasse = datejour - 30
datelimhaute = datejour + 30

ne sont pas déclarés en variables?


bonjour,

Private Sub UserForm_Initialize()

datejour = now
datelimbasse = datejour - 40
datelimhaute = datejour + 40

With Me.ComboBox1
.AddItem Format(datelimbasse, "mmm yyyy")
.AddItem Format(datejour, "mmm yyyy")
.AddItem Format(datelimhaute, "mmm yyyy")
End With

End Sub

Mais as-tu seulement cherché ?

A+

Bonjour,

J'ai une combobox avec :

janv 2005, fevrier 2005,mars 2005,avril 2005......dec 2007

je souhaite faire un combobox dynamique, c'est a dire afficher à chaque fois
3 mois : dec 2004, janvier 2005,fevrier 2005, par rapport à ma date système à
+- 40 jours.

Est ce possible?







Avatar
rick
oui je sais mais je l'ai essayé sans déclarer les variables et cela marche
quand meme.

Pourquoi?


Bonjour rick,

anonymousA n' a fait que te donner le code pour que tu puisses obtenir une
réponse rapide. Libre à toi maintenant de déclarer les variables...

Starwing