Trouver le premier jours du mois

Résolu
cire2003 Messages postés 101 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 8 septembre 2010 - 7 déc. 2006 à 19:37
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 

10 réponses

cire2003 Messages postés 101 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 8 septembre 2010
8 déc. 2006 à 16:12
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é.
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
7 déc. 2006 à 20:29
 Bonsoir à tous

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

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

jean-marc
0
cire2003 Messages postés 101 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 8 septembre 2010
8 déc. 2006 à 00:30
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.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 déc. 2006 à 01:38
Bonsoir,
si on suppose que xDate est ta date (01/12/20006 par exemle)
Format$(xDate,"jjjj") renvoie le nom du jour
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
8 déc. 2006 à 13:34
 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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 déc. 2006 à 14:26
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é
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 déc. 2006 à 14:31
ajoutes une ligne à la fin :
Redim Preserve Jours(Pas)
pour enlever un éventuel élément vide...
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 déc. 2006 à 18:50
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
0
cire2003 Messages postés 101 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 8 septembre 2010
9 déc. 2006 à 17:02
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!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
9 déc. 2006 à 17:13
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"
<!--
0
Rejoignez-nous