XL 2016 Excel VBA : moi courant et suivant

Phillip

XLDnaute Occasionnel
Bonjour,

Problème tout bête qui m'arrache les cheveux. Je veux trouver le mois en cours en lettres, et le mois suivant (février) en lettres. J'ai pondu le code suivant. Que je passe par une variable intermédiaire Moisprochain (qui d'alleurs me sort bien "2") ou directement avec now+1 dans le format, je sors systématiquement janvier !!

VB:
sub mois()

Vmoislettres = Format(Now, "mmmm")

'trouve le mois suivant le mois en cours
Moisprochain = Month(Now) + 1

'ces 2 lignes me donnent Janvier ! Pourquoi ?
VmoisprochainLettres=format(Moisprochain,"mmmm")
VmoisprochainLettres = Format(month(Now) + 1, "mmmm")

end sub

Merci du coup de pouce !

Cordialement

Phillip
 

vgendron

XLDnaute Barbatruc
bonjour

à la question posée:
c'est pas parce que ta variable s'appelle "MoisProchain" que VBA voit ca comme un mois.
lui.. il voit juste un nombre qu'il prend par défaut pour un jour..
pour t'en convaincre
format(1,"mmmm") ==> Janvier
format (32,"mmmm") ==>Février

il faut donc que tu reconstruises une date complète
VmoisprochainLettres=format(dateserial(year(now),MoisProchain,1),"mmm")

sinon. à partir de la date du jour: il te suffit d'utiliser la fonction mois(fin.mois(now)+1)
now = aujourd'hui
fin.mois==> t'emmène au dernier jour du mois en cours
+1 ==> décale d'un jour ==> 1er jour du mois suivant
mois(....) te donne le mois suivant
 

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 197
Membres
110 703
dernier inscrit
papysurf