XL 2013 Insérer un calendrier par combobox

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
    43.7 KB · Affichages: 16
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @anass1 , le Forum

Voici une méthode pour faire ton calendrier à la volée... Par contre il faut aussi quand même indiquer une année (pour les bisextiles et le calendrier de février)

Bonne journée
@+Thierry
 

Pièces jointes

  • XLD_anass1_Auto_Calendar_v00.xlsm
    48.7 KB · Affichages: 26

GALOUGALOU

XLDnaute Accro
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

  • date en colonne.xlsm
    22.1 KB · Affichages: 11

anass1

XLDnaute Junior
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

anass1

XLDnaute Junior
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
    45.7 KB · Affichages: 9

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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 :eek:

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
 

Discussions similaires

Réponses
8
Affichages
245

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1