Trouver le premier jours du mois [Résolu]

cire2003 101 Messages postés samedi 8 novembre 2003Date d'inscription 8 septembre 2010 Dernière intervention - 7 déc. 2006 à 19:37 - Dernière réponse : mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention
- 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

Répondre au sujet
cire2003 101 Messages postés samedi 8 novembre 2003Date d'inscription 8 septembre 2010 Dernière intervention - 8 déc. 2006 à 16:12
+3
Utile
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é.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cire2003
cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 7 déc. 2006 à 20:29
0
Utile
 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
cire2003 101 Messages postés samedi 8 novembre 2003Date d'inscription 8 septembre 2010 Dernière intervention - 8 déc. 2006 à 00:30
0
Utile
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
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 8 déc. 2006 à 01:38
0
Utile
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
cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 8 déc. 2006 à 13:34
0
Utile
 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
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 8 déc. 2006 à 14:26
0
Utile
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
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 8 déc. 2006 à 14:31
0
Utile
ajoutes une ligne à la fin :
Redim Preserve Jours(Pas)
pour enlever un éventuel élément vide...
Commenter la réponse de chaibat05
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 8 déc. 2006 à 18:50
0
Utile
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
cire2003 101 Messages postés samedi 8 novembre 2003Date d'inscription 8 septembre 2010 Dernière intervention - 9 déc. 2006 à 17:02
0
Utile
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
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 9 déc. 2006 à 17:13
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.