Trouver le premier jours du mois [Résolu]

Messages postés
101
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
- - Dernière réponse : mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
- 9 déc. 2006 à 17:13
Bonjour

Après avoir chercher bien longtemps, je n'ai toujours pas réussi à trouver réponse à ma question. Ceci dit, ce que j'entend par trouver le premier du mois signifie trouver le premier jour avec le jour de la semaine qui s'y attache. Par exemple, au mois de décembre, le premier du mois est le vendredi. C'est pour un projet d'école et je ne peux par utiliser l'option MonthCalendar... malheureusement.

Toute aide serait très apprécié!

Merci

http://monstershost.com/images/pub.swf 
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
101
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
3
Merci
Bonjour

merci beacoup pour votre aide, mais cela n'était pas tout à fait ce que je chechais. J'ai finalement trouver ce qu'il me fallait :

intWeekday = Weekday("1" & "/" & Mois & "/" & Annee)

Je mettrai ma source sur le site lorsqu'elle sera fini. Il sera donc plus facile de comprendre ce que je voullais dire.

Et pour ce qui est de ton code chaibat05 , il peut être fait en bien moins long :

For i = 1 To Now.DaysInMonth(Annee, Mois)       
      Jours(i + Pas) = Format$(i, "00") & "/" & Mois & "/" & Annee
Next

Dans ce bout de code, pas mal toutes tes lignes y sont résumé.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cire2003
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
 Bonsoir à tous

Cette question se résume-t-elle à:

For i = 1 To 12
MsgBox FormatDateTime("01/" & i & "/2006", 1)
Next

jean-marc
Commenter la réponse de cs_JMO
Messages postés
101
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
0
Merci
Non, malheureusement. Je m'explique un peu mieux. J'ai environ 40 cases numérotés de 1 à 40. Prenons ce mois ci par exemple. Il aurait commencé à la case 6 car la case 6 représente le vendredi et la case 1 le dimanche. En fait, c'est de refaire le monthcalendar par moi meme.
Commenter la réponse de cire2003
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
Bonsoir,
si on suppose que xDate est ta date (01/12/20006 par exemle)
Format$(xDate,"jjjj") renvoie le nom du jour
Commenter la réponse de chaibat05
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
 Bonjour à tous

Exemple, à peaufiner (sur année+1), sur l'énumération du mois de novembre. 

For i = 1 To 12
var1 = var1 &vbCrLf& FormatDateTime("01/" & i & "/2006", 1)
Next
MsgBox var1

MsgBox Month(Now) - 1

MsgBox DateDiff("d", "01/" & Month(Now) -1 & "/2006", "01/" & Month(Now) & "/2006"),,"Nbre de jours"



For i = 1 To DateDiff("d", "01/" & Month(Now) -1 & "/2006", "01/" & Month(Now) & "/2006")
var2 = var2 &vbCrLf& FormatDateTime(i & "/" & Month(Now) -1 & "/2006", 1)

Next
MsgBox var2


Je regarde, ce soir , pour faire mettre le calendrier dans un array ou un dictionary.
Peut-être demain, car, ce soir, il y a la fête des illuminés ...humides....(sur lyon). 
jean-marc
Commenter la réponse de cs_JMO
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
Bonjour,


Dans ton code fais attention avec
Month(Now) - 1 si le mois est janvier

SINON,
voici un exemple de procédure qui permet de créer
un calendrier et  de le placer dans une variable tableau


Le code est un peu long et détaillé mais efficace à 100 %

...
Public Sub MyCalendar(Annee As Integer)
On Error GoTo err_j


Dim Jours() As String
ReDim Jours(366)


Dim i As Integer
Dim Pas As Integer


'Janvier
    For i = 1 To 31
       Jours(i) = Format$(i, "00") & "/" & "01" & "/" & Format$(Annee, "00")
    Next
Pas = 31


'Fevrier
    For i = 1 To 28
       Jours(i + Pas) = Format$(i, "00") & "/" & "02" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 28


'Année bissextile
    If Annee Mod 4 = 0 Then
      Pas = Pas + 1
      Jours(60) = "29" & "/" & "02" & "/" & Format$(Annee, "00")
    End If


'Mars
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "03" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 31


'Avril
    For i = 1 To 30
       Jours(i + Pas) = Format$(i, "00") & "/" & "04" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 30


'Mai
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "05" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 31


'Juin
    For i = 1 To 30
       Jours(i + Pas) = Format$(i, "00") & "/" & "06" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 30


'Juillet
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "07" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 31


'Aout
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "08" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 31


'Septembre
    For i = 1 To 30
       Jours(i + Pas) = Format$(i, "00") & "/" & "09" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 30


'Octobre
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "10" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 31


'Novembre
    For i = 1 To 30
       Jours(i + Pas) = Format$(i, "00") & "/" & "11" & "/" & Format$(Annee, "00")
    Next
Pas = Pas + 30


'Décembre
    For i = 1 To 31
       Jours(i + Pas) = Format$(i, "00") & "/" & "12" & "/" & Format$(Annee, "00")
    Next

End Sub

...
sacré fêtard, régales toi avec les illuminations
et reviens-nous illuminé
Commenter la réponse de chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
ajoutes une ligne à la fin :
Redim Preserve Jours(Pas)
pour enlever un éventuel élément vide...
Commenter la réponse de chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
Bonsoir,
j' aimerais bien le croire...
Chez moi, ton code ne marche pas...
Erreur: "...objet requis"  sur Now.DaysInMonth(annee, mois)


Si tu pouvais m' éclairer ça serait sympa de ta part...


A supposer que ça marche chez toi, pour un calendrier annuel
tu sera obligé de le reproduire pour chaque mois vu que "mois"
est en paramètre...
Il ne s' agit pas de faire plus court, mais plus cohérent...
le < Jours(i + Pas) = Format$(i, "00") & "/" & Mois & "/" & Annee >
me laisse perplexe !

amicalement
Commenter la réponse de chaibat05
Messages postés
101
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
0
Merci
salut

désolé du petit manque d'explication sur ce point. J'utilise la formule dans une fonction qui a 2 parametres byval étant Mois (mois demander) et annee(annee demandé)
Vu que tu n'as pas la formule, tu peux faire, pour le mois et année actuel :

Now.DaysInMonth(now.year, now.month)

Fait l'essaie, si je ne me trompe pas (j'y suis aller de mémoire), ça devrait fonctionner assez bien!
Commenter la réponse de cire2003
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Now est une propriété de type Variant (et ne possède aucune sous-propriété).
Elle appartient à la classe DateTime.

En revenche, DaysInMonth n'est pas connu des bibliothèques VB.
Tu possède certainement une fonction personnalisé.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino