XL 2013 Insérer un calendrier par combobox

  • Initiateur de la discussion Initiateur de la discussion anass1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

anass1

XLDnaute Junior
Bonjour,
SVP, Est ce que possible insérer les jours d'un mois sélectionné par combobox dans la colonne A .
Merci
Sans titre.jpg
 

Pièces jointes

  • 5.xlsm
    5.xlsm
    43.7 KB · Affichages: 16
Dernière édition:
bonjour anass1 bonjour le forum
je vous propose à partir d'une saisie dans un textbox de remplir les date du jour de saisie à la fin du mois dans la colonne A, et de validation en validation, toujours à la suite dans la colonne

le code
VB:
Private Sub CommandButton1_Click()
Dim jour, jfinmois As Date
Dim ligne
jour = TextBox1.Text
jfmois = DateAdd("m", 1, jour) - Day(jour)
ligne = Sheets("Feuil1").Range("A36000").End(xlUp).Row + 1
For j = 0 To DateDiff("d", jour, jfmois)
Sheets("Feuil1").Cells(ligne, 1).Offset(j, 0).Value = DateAdd("d", j, jour)
Next j
Unload Me
End Sub
A vous d'adapter à votre classeur, nom de la feuille etc
cordialement
galougalou
 

Pièces jointes

Bonsoir Thierry, GALOUGALOU , le Forum
Merci beaucoup GALOUGALOU pour votre aide, j'apprécie cela
Merci beaucoup Thierry, c'est parfait
J'ai ajouté quelques modifications, veuillez revérifier
VB:
 With ThisWorkbook.Worksheets("A")
    lgn = IIf(.Range("A3") = "", 3, .Range("A" & Rows.Count).End(xlUp)(2).Row)
        .Range("A" & lgn).Resize(UBound(TabCalendar, 2), UBound(TabCalendar, 1)) = Application.WorksheetFunction.Transpose(TabCalendar)
    lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
    .Range("A3:A" & lgn).NumberFormat = "dd/mm/yyyy"
    .Range("A3:A" & lgn).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("A3:E" & lgn).Sort , Key1:=.Range("A3"), Order1:=xlAscending, Header:=xlNo
    End With
 
Bonsoir @anass1

Ah je ne savais pas que ce calendar devait se mettre à la queue dans la même liste de la feuille "A".
Donc attention à enlever cette ligne pour les testes dans Sub GenerateCalendar(y As Integer, M As Byte, D As Byte)

ThisWorkbook.Worksheets("A").Range("A3:A33").ClearContents

Pour les ajouts que tu montres, oui pas de souci , mais normalement le GenerateCalendar envoie en ordre de Date et sans doublon (sauf si on le fait tourner plusieurs fois puisque maintenant il s'ajoute à la dernière ligne vide...

J'ai testé sur ma v00, et tout semble fonctionner avec ces ajouts. (Y compris si on envoie deux fois JUIN, pas de doublon.

Bonne soirée
@+Theirry
 
Concernant cette question;
Appliquer Countifs et afficher (listbox) uniquement sur mois sélectionné ;

Sans titre.png

Avez-vous une solution? 🙂
Ou dois-je poser un nouveau sujet si je ne trouve pas de solution;
Désolé pour le dérangement.
Merci
 

Pièces jointes

  • 5.xlsm
    5.xlsm
    45.7 KB · Affichages: 11
Re Bonsoir

Pour cette partie là, oui j'ai mis ça en commentaires car ça n'avait rien à voir avec le calendrier, le peu que j'ai fait tourner avant ca ramait un max avant que je mette en comments !

Je n'ai même pas cherché à quoi ca servait ou ce que ca devait faire ! Sorry

Je pense que ca devrait faire l'objet d'un nouveau sujet oui, surtout que là on parle de WorksheetFunction.

Bonne soirée
@+Thierry
 
Hello Patrick,

Oui grand merci pour ceci, en effet j'avais ce code sous la main que j'avais fait il y a un bail dans les années 2000 pour XLD et pour écrire un calendrier sur un loop en colonne comme demandé par @anass1, je l'ai repris tout simplement.
C'est vrai qu'à l'époque j'avais plus de cheveux mais moins de connaissances en VBA d'où cette curieuse et barbatruqueste façon ! LoL 😱

Mais en effet depuis le temps et selon le cas je me suis fait deux petites fonctions en m'appuyant sur DateSerial comme tu proposes :

VB:
Public Function GetFirstDayOfMonth(ByVal MyDate As Date) As Date
GetFirstDayOfMonth = DateSerial(Year(MyDate), Month(MyDate), 1)
End Function

Public Function GetLastDayOfMonth(ByVal MyDate As Date) As Date
    GetLastDayOfMonth = DateSerial(Year(MyDate), Month(MyDate) + 1, 0)
End Function

Mais tu vois tout Patrick ! 😉

Bonne soirée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
673
Réponses
40
Affichages
1 K
  • Question Question
Autres Code VBA
Réponses
11
Affichages
253
Réponses
2
Affichages
83
Réponses
4
Affichages
243
Réponses
7
Affichages
281
Réponses
14
Affichages
544
Réponses
1
Affichages
220
Réponses
118
Affichages
2 K
Retour