Problème de format date lors de l'ouverture de plusieurs fichier
renoncef
-
19 nov. 2012 à 23:42
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
20 nov. 2012 à 09:47
Bonjour,
J'ai écrit une macro (dans Excel 2002) qui ouvre chaque fichier excel présent dans un dossier.
Sur le 1er fichier tout ce passe bien, a la fin du traitement le fichier est déplacé sans être enregistré.
Le problème est lors de l'ouverture du 2éme fichier, j'obtiens des dates sous forme "41215".
Si je stop la macro, referme le fichier (sans enregistrer), et relance la macro j'ai bien des date sous la forme "02/12/12". Mais il y a une erreurs sur le fichier suivant.
Avez vous une idée d'où cela peut provenir ?
La même macro lancée avec Excel 2007 ne pose pas de problème changement de date dans les fichiers.
Extrait du debut de la macro :
"Dim FSO As New Scripting.filesystemobject
Dim Fichier As Scripting.File
Dim AppExcel As Excel.Application
Dim Traitement As Boolean
Dim TraitementTotal As Boolean
Application.ScreenUpdating = False
Set DossierSource = FSO.GetFolder("D:\SaisieOleron")
Set AppExcel = CreateObject("Excel.application")
Traitement = False
TraitementTotal = False
For Each Fichier In DossierSource.Files
Workbooks.Open Fichier
Merci de votre aide.
Salutations
A voir également:
Problème de format date lors de l'ouverture de plusieurs fichier
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 nov. 2012 à 09:47
Salut
Note que tu fais du VBA, pas du .Net (catégorie de la question)
"une macro ... qui ouvre chaque fichier excel présent dans un dossier"
Donc les fichiers et leurs noms existent déjà.
"a la fin du traitement le fichier est déplacé sans être enregistré."
Oups. Va falloir m'expliquer comment tu fais ce tour de magie.
Soit précis dans tes formulations.
"déplacer" signifie que le fichier change de répertoire, mais comme tu dis faire un traitement, il est donc modifié.
Les dates et les cellules :
Sous Excel, les dates n'existent que sous forme d'un chiffre de type Double.
En réalité, c'est l'affichage de la date qui fait que l'on peut lire une date sous forme littérale (ou autre).
Le fait que tu lises 41215 peut signifier que tu ne précises pas le format de lecture.
Exemple :
Range("A1") : Va te fournir le contenu de la cellule A1 mais comme rien n'est précisé, il te renvoie la .Value
Voir la lecture complète avec les trois formats :
Range("A1").Value
Range("A1").Value2
Range("A1").Text
Tu verras que, sur une cellule renfermant une date, les résultats sont complètement différents.
PS : Quand tu colles du code, utilise la coloration syntaxique (3ème icone à droite) = plus facile à lire.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)