[RÉSOLU] VBA : userbox calendrier

dionys0s

XLDnaute Impliqué
Bonjour le forum

J'ai un fichier dans lequel j'aimerais utiliser un userform pour remplir ma cellule B8, et en fonction de ce qui est choisi, les cellules du dessous. Je m'explique (ouvrir le fichier joint pour visualiser).

Je voudrais qu'en cliquant sur le bouton "choisir le mois" s'ouvre un calendrier qui ne propose que les mois-année (janvier 2010, février 2010, ... ), et qu'une fois le mois choisi, cela remplisse la cellule B8 au format mmm-yy, et que les 28 à 31 cellules du dessous (suivant le mois sélectionné) affichent automatiquement tous les jours du mois au format dd/mm/yy

J'ai essayé de comprendre les userform mais j'avoue galérer un max là-dessus. Je pense que votre aide pourrait m'aider à comprendre les démarches à suivre pour réaliser ce genre de macro.

D'avance merci pour votre aide
 

Pièces jointes

  • Classeur1.xls
    25.5 KB · Affichages: 86
  • Classeur1.xls
    25.5 KB · Affichages: 96
  • Classeur1.xls
    25.5 KB · Affichages: 94
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : VBA : userbox calendrier

Ah si.
Tu n'avais juste pas inséré de module et appelé le module via le bouton.

Cool !! Merci beaucoup.

Ceci dit j'ai une question. Ne sont affichés que les mois de 2010. Serait il possible d'avoir tous les mois de tous les temps du monde de l'univers ?
 

JNP

XLDnaute Barbatruc
Re : VBA : userbox calendrier

Re :),
Ne sont affichés que les mois de 2010. Serait il possible d'avoir tous les mois de tous les temps du monde de l'univers ?
Euh... Non :D...
Modifie l'Initialize
Code:
Private Sub UserForm_Initialize()
For I = 0 To 59
ComboBox1.AddItem Application.WorksheetFunction.Proper(Format(DateAdd("m", I, #1/1/2010#), "mmmm yyyy"))
Next I
End Sub
Il te suffit de modifier la boucle ou la date de départ en fonction de tes désirs :p...
Là, ça va déjà de janvier 2010 à décembre 2014 :rolleyes:...
A + :cool:
 

13GIBE59

XLDnaute Accro
Re : VBA : userbox calendrier

Bonjour le forum. :)

Super ton truc pierrejean. Cela dit, je suis surpris que tu n'aies pas pensé à placer ton code du
Code:
Private Sub CommandButton1_Click()
dans le Private Sub ComboBox2_Change(), comme ça :

Code:
Private Sub ComboBox2_Change()
ligne = 9
Range("B8:B39").ClearContents
Range("B8") = Format(CDate("01/" & ComboBox1 & "/" & ComboBox2), "mm-yyyy")
 If ComboBox1.ListIndex = 11 Then
   fin = CDate("31/12/" & ComboBox2)
 Else
   fin = CDate("01/" & ComboBox1.ListIndex + 2 & "/" & ComboBox2) - 1
 End If
  For n = CDate("01/" & ComboBox1 & "/" & ComboBox2) To fin
   Cells(ligne, "B") = n
   ligne = ligne + 1
  Next n
End Sub

Comme ça on évite le (gros) bouton, non ?

Bravo encore. ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 355
Membres
102 873
dernier inscrit
yayo