Utilisation des dates entre VB6 et Excel

Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005 - 25 juin 2004 à 16:50
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 25 juin 2004 à 22:09
Bonjour,

il m'arrive très souvent d'avoir besoin de réaliser des éditions sous Excel avec VB6. J'ai un soucis pour la gestion des dates.

J'ai 2 cas :

- j'ai une variable date auquel j'affecte une date (ex: 29/06/2004). Si je veux afficher cette valeur sous excel j'utilise le code suivant:
xlsheet.range("A1").value = madate

dans ce cas là j'ai bien "20/06/2004" qui s'affiche sous excel.

- l'inconvénient du code ci-dessus survient quand on a par exemple 10 000 lignes de dates à copier à la suite. Faire une boucle qui répéte 10 000 fois le code est extrêmement lent donc j'utilise un tableau dans lequel je pré rempli mes 10 000 lignes que je copie d'un coup sur ma feuille Excel. Très bien:
xlsheet.range("A1:A10000").value = monTableauDate

l'inconvénient dans ce cas est que la date n'est plus affiché de la manière que je le veux, il m'affiche "06/20/2004" (format anglais).

Pour remédier à ça je tente de faire :
xlsheet.range("A1:A10000").NumberFormat = "dd/mm/yyyy"

que je le fasse avant, après ou avant et après avoir copier le tableau, rien ne se passe et la conversion ne se fait pas.

Comment gérer vous les dates quand vous les injecter depuis VB6 vers Excel.

ps : J'utilise Excel 2002 mais le code doit fonctionner sous 2000 et 97 aussi

Merci

3 réponses

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
25 juin 2004 à 18:41
salut,
A vrai dire je ne sais pas d'ou peut provenir ton pb, mais je peux imaginer que ca vient du type de données que tu as dans ton tableau, c'est peut être la solution, il faut tester

peut etre du style variant dans le tableau et qu'il faudrait un String a la place ou inversement, ou bien même un autre type

dim monTableauDate() as variant ou dim monTableauDate() as string

bonne prog
liquide
0
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005
25 juin 2004 à 19:27
En fait j'ai simplifié mon explication mais dans mon code j'ai un tableau à plusieurs dimensions et il est de type variant.

Quand j'affecte les valeurs à mon tableau je les affecte donc au format qui leur correspond. Par exemple pour une date :

MonTableau(1,1) = "toto"
MonTableau(1,2) = madate


où la variable "madate" est de type date.
Là dessus y a pas d'erreur sous VB6 avec l'espion je vois que tout est correct et que tout est enregistré en format date dans le tableau et là aucune erreur de date. Le problème intervient quand je copie cette élément du tableau dans ma feuille Excel
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
25 juin 2004 à 22:09
le problème viens de ton tableau, si tu lui envoi des date, fait un tableau de date

utilise jamasi un type variant, c'est gros, lent et pas optimiser pentoute

au pire, prend un tableau de string

tu peux aussi utiliser la fonction format(tableau(i,j),"dd/mm/yyyy")
0
Rejoignez-nous