Problème de format de date en VBA

Résolu
Signaler
Messages postés
5
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 juin 2011
-
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2011
-
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

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

Pac
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2011
2
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
Messages postés
5
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 juin 2011

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
Messages postés
5
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 juin 2011

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.
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2011
2
Pac