Excel + Date + VBA + Aspirine = rien compris

Orodreth

XLDnaute Impliqué
Bonjour à tous.

Je vais même pas vous demander de trouver la réponse.
J'ai eu un problème ce matin que j'avais jamais eu avant, et parce que j'étais mort de rire en le voyant (5 minutes, pas plus, sinon, je risquais de me faire virer :( ), je vous le livre maintenant.

Une procédure qui renvoie le mois abrégé en fonction de son index:

Code:
Sub VerifMois ()
Dim LeMois as string
Dim i as integer
For i = 1 to 12
    LeMois = Right(Cstr("0" & i),2)
    Debug.print Ucase(Format(LeMois, "MMM")
next i
end sub

Les résultats que j'ai obtenu sont les suivants:
01 = Décembre
02 = Janvier
03 = Janvier
04 = Janvier
05 = Janvier
06 = Janvier
07 = Janvier
08 = Janvier
09 = Janvier
10 = Janvier
11 = Janvier
12 = Janvier

J'ai essayé en changeant le "string" en integer, rien à faire.
J'ai conitnué un peu pour voir, je suis allé jusqu'à 16.
13 à 16 = Janvier

Si quelqu'un a compris, je lui tire mon chapeau et le félicite grandement.

Configuration au boulot: XP Pro et Excel 2003

Bon courage à tous et merci à ceux qui trouveront une solution
Cordialement,
Thomas
 

wilfried_42

XLDnaute Barbatruc
Re : Excel + Date + VBA + Aspirine = rien compris

bonjour

les dates ne sont pas enregistrées sous forme de date classiques, mais sous la forme d'un entier long, qui correspond au nombre de jours ecoulés depuis le 1er janvier 1900 ou 1904 (selon le calendrier utilisé)

Donc les 31 premier jours correspondent à la periode du 01/01/1900 au 31/01/1900, soit toujours le mois de janvier
ta fonction devient donc

Debug.print Ucase(Format(cdate("01/" & i & "/2000"), "MMM"))


ps : Avec excel il faut eviter l'aspirine, ca fluidifie le sang et le risque d'hemorragie devient important :D
 
Dernière édition:

Orodreth

XLDnaute Impliqué
Re : Excel + Date + VBA + Aspirine = rien compris

Bonjour wilfried

Le problème, c'est qu'à l'origine, j'ai bien une date dans une cellule, de laquelle j'extrais le mois avec un "Ucase(Format( ... "

Mais je testerai ta solution cet aprem, quand mon supérieur sera de retour.

Merci beaucoup :)
 

Orodreth

XLDnaute Impliqué
Re : Excel + Date + VBA + Aspirine = rien compris

Re

La cellule de la date indique le 1er du mois courant.
Mais il arrive que je doive récupérer des informations du mois précédent.
En fait, tout serait en dur sur excel, je me prendrais pas la tête comme ça.
Mais je dois créer des formules dans les cellules de manière dynamique, et en fonction des mois.

Sachant que dans l'historique qui m'intéresse, les feuilles sont nommées en mois majuscules abrégées (d'où le Ucase(Format())"

Mais je vais réfléchir, tu m'as donné des idées
 

Pierrot93

XLDnaute Barbatruc
Re : Excel + Date + VBA + Aspirine = rien compris

Bonjour Thomas, Wilfried

pas sur d'avoir tout compris, mais regarde le code ci dessous si cela peut t'aider :

Code:
Sub VerifMois()
Dim i As Integer
For i = 1 To 12
    Debug.Print UCase(MonthName(i, True))
Next i
End Sub

bon après midi
@+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz