Pb dans les dates.

Résolu
manytime Messages postés 23 Date d'inscription mercredi 18 janvier 2006 Statut Membre Dernière intervention 2 avril 2008 - 2 avril 2008 à 15:32
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 3 avril 2008 à 11:00
Bonjour,
Je developpe une petite macro avec VBA et j'ai quelques soucis avec cette commande:

mois = Month(Format(cellule.Value, "dd/mm/yyyy"))

Je met dans une variable 'mois' le mois d'une date (format 'jj/mm/aaaa hh/mm') d'une cellule.
Mon problème est que je reçois une erreur mais assez aléatoirement.
Par exemple si je mets comme date '31/11/2008  12:48:58', il me sort l'erreur 'imcopatibilité de type.
Si je met 03 même 12 à la place de 11, ça fonctionne.
Peut être que la fonction n'est pas la bonne.

Merci pour votre aide.

7 réponses

cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
2 avril 2008 à 15:54
Re,

Ok, je viens de piger ton problème...Apparement la date 31/11/2008 est fausse car le mois de Novembre à 30 jours.....Essaye en mettant 30/11/2008 et tu verras que cela fonctionne...Faut vérifier ta date avant de récupérer le mois dans ta variable...

A+
Exploreur

 Linux a un noyau, Windows un pépin
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
2 avril 2008 à 15:47
Salut,

De quel type est le format de ta cellule ?

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
manytime Messages postés 23 Date d'inscription mercredi 18 janvier 2006 Statut Membre Dernière intervention 2 avril 2008
2 avril 2008 à 15:54
Personnalisée : jj/mm/aaaa hh/mm
0
manytime Messages postés 23 Date d'inscription mercredi 18 janvier 2006 Statut Membre Dernière intervention 2 avril 2008
2 avril 2008 à 15:56
Effectivement j'ai pas fait cette vérification la. Merci beaucoup.
0

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

Posez votre question
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
2 avril 2008 à 16:01
Re,

Pour vérifier la saisie de ta date utilise : Isdate (retour en Boolean)

Toto = "31/11/2008"
MsgBox IsDate(Toto)

Toto = "30/11/2008"
MsgBox IsDate(Toto)

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
2 avril 2008 à 18:35
Bonjour à tous les deux :

Méfiance avec VB !
Isdate ne suffit pas pour dormir tranquille ...

Il n'y a qu'à saisir "09/21/2008" pour comprendre  : en format jj/mm/aaaa, le doigt de l'utilsateur étourdi frappe sur 2 au lieu de 1 en voulant frapper "09/11/2008" ===>>> le mois 21 n'existe pas mais VB va s'amuser à corriger ===>>> et on se retrouve sereinement avec la date du 11/09/008...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
3 avril 2008 à 11:00
d'accord avec jmfmarques, la saisie de dates est un casse tête. Il faut stocker en Date dès que l'on peut, par defaut, ca considère les parametres régionnaux, au pire, ca joue en internationnal, mais c'est un sujet épineux.

si IsDate dit Ok ! on peut dire que ca va.... si la date n'est pas celle qu'il souhaitait, l'utilisateur n'a qu'a s'en prendre a lui... ou a modifier ses regional settings pour que ceux-ci collent a ses preferences.

mois = Month(Format(cellule.Value, "dd/mm/yyyy"))
utilisation de Format non requise ici.
0
Rejoignez-nous