Problème de format de date en VBA

Résolu
heljy Messages postés 5 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 15 juin 2011 - 23 mars 2010 à 10:05
cs_pacadebord Messages postés 113 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 19 décembre 2011 - 23 mars 2010 à 16:32
Bonjour, Je ne suis pas très fort en VBA et j'ai besoin de votre aide.
je lis des cellules dans un tableau Excel avec une macro. Lorsque la date est : "28/03/2006", il n'y a pas de pb mais lorsque la date est : "05/09/2006", la macro me renvoie : "09/05/2006". Le jour et le mois sont inversés.
Comment faire pour lire les dates dans le bon format?
Par ailleurs, est-il possible de tester dans une macro si une cellule d'un tableur contient une date? Si oui, quelles est l'instruction?
merci d'avance pour votre aide

5 réponses

cs_pacadebord Messages postés 113 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 19 décembre 2011 2
23 mars 2010 à 15:36
Nous y voilà... Pour parler de date correctement à VB, il faut utiliser la forme #9/5/2006# pour le 5 septembre.

Pac
3
cs_pacadebord Messages postés 113 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 19 décembre 2011 2
23 mars 2010 à 10:40
Bonjour,

Le problème est vieux comme EXCEL...
Tout dépend de la façon de lire les cellules de votre macro. Utilisez vous une variable string ou date ?

La fonction IsDate() qui retourne "True" ou "False" est toute indiquée

Pac
0
heljy Messages postés 5 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 15 juin 2011
23 mars 2010 à 15:28
merci de m'avoir répondu,
la fonction isdate() est exactement ce que je cherchais mais je n'ai pas l'habitude et je ne sais pas bien où trouver une liste de fonctions disponibles.

par contre le pb d'inversion des mois et jours reste entier. j'ai un peu avancé dans mes recherches : en fait la lecture des dates fonctionne mais c'est lorsque je tente d'écrire une date dans une cellule que ça coince.
par exemple:
Range("C4").Select
ActiveCell.FormulaR1C1 = "5/9/2006"
écrit "9/05/2006" dans la cellule C4
alors que :
Range("b4").Select
ActiveCell.FormulaR1C1 = "28/03/2006"
écrit bien "28/03/2006" dans la cellule B4
0
heljy Messages postés 5 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 15 juin 2011
23 mars 2010 à 16:19
je m'en sors en faisant :
Dim mydate As Date
'
Range("C5").Select
mydate = "05/09/2006"
ActiveCell.FormulaR1C1 = mydate

et là, j'obtiens bien "05/09/2006" dans ma cellule
Merci pour ton aide.
0

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

Posez votre question
cs_pacadebord Messages postés 113 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 19 décembre 2011 2
23 mars 2010 à 16:32
Pac
0
Rejoignez-nous