manytime
Messages postés23Date d'inscriptionmercredi 18 janvier 2006StatutMembreDernière intervention 2 avril 2008
-
2 avril 2008 à 15:32
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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.
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 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...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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.