Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 21/06/2006, 23h13   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juin 2006
Messages: 3
Par défaut Excel : Problème des dates avec macros

Bonjour,

J'ai un problème avec Excel.

Lorsque je fais une conversion d'un *.csv vers *.xls grâce à des macros ; le format des dates n'est pas respecté, Excel n'utilise que le format américain.

par exemple la date 21/06/2006 n'est pas reconnu sous excel lors de cette conversion.

existe-il une solution à ce problème ?

PS:J'ai testé cette macro sous Excel 2007 beta 2 et j'ai constaté le même problème ?

Microsoft ou des développeurs ont-ils trouvé des solutions ?
ordi12 est déconnecté   Réponse avec citation
ANNONCES
Vieux 22/06/2006, 08h31   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

Bonjour

cela se fait, j'en ai un exemple mais je ne suis pas sur le bon ordi. Si personne ne t'a dépanné, je le fais dans la matinée

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 08h48   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

re

tu peux t'inspirer de ce code réalisé pour .dat :


' Sélection du fichier de données
Dim Ouvrir As Variant
ChDir (ThisWorkbook.Path & '\\ARTIS')
' début zone récup .dat

'ouverture de fichier .dat
Ouvrir = Application.GetOpenFilename(filefilter:='Fichier Artis (*.dat),*.dat', Title:='Récupération des Données ARTIS')
If Ouvrir = False Then
MsgBox 'aucun fichier sélectionné', vbOKOnly + vbCritical, 'fin de procédure '
Sheets('Accueil').Select
erreur = 1
Exit Sub
End If

' utilisation d'Array car données trop nombreuses (sup à env 60 colonnes sur XL97)
Dim ColumnArray(1 To 256, 1 To 2) As Integer
Dim x As Integer

' ColumnArray contient les n° de colonnes et le type de données à prendre encompte
' 1 standard, 4 date
For x = 1 To 256
ColumnArray(x, 1) = x
ColumnArray(x, 2) = 1
Next x
'Définition des colonnes à mettre au format date
'_________________
'méthode par tableau vba
'Dim Coldates(1 To 10) As Integer
' Coldates(1) = 25
' Coldates(2) = 52
' Coldates(3) = 53
' Coldates(4) = 56
' Coldates(5) = 64
' Coldates(6) = 67
' Coldates(7) = 0
' Coldates(8) = 0
' Coldates(9) = 0
' Coldates(10) = 0
' For x = 1 To 10
' If Not Coldates(x) = 0 Then
' ColumnArray(Coldates(x), 1) = Coldates(x)
' ColumnArray(Coldates(x), 2) = 4
' End If
' Next x
'________________

' Ouverture du fichier .dat
Workbooks.OpenText Filename:=Ouvrir _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, _
FieldInfo:=ColumnArray
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 12h40   #4 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

bonjour,

Merci pour ta réponse.

Je ne comprends pas très bien, tu me conseille de passer par un format *.dat.
Faire *.csv -> *.dat -> *.xls ?

Je suis débutant sous VB dans Excel et je ne sais pas comment adapter ton code pour corriger mon problème ?

Peux-tu m'expliquer un pe plus en détails ?

Merci
  Réponse avec citation
Vieux 22/06/2006, 12h48   #5 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

Je vais expliquer les manip que je n'arrive pas à effectuer avec les macro VB :


Ouverture du fichier *.csv

Conversion *.csv -> *.xls

Trier en fonction des dates et supprimer les lignes hors du mois.
(par exemple, on sélectionne le mois de juin et toute les lignes qui ne correspondent pas au mois de juin sont supprimées).

Créer un graphique dynamique

Sauvegarder ce fichier sous Graphique.xls

Voila en quelques mots ce que j'aimerais réaliser grâce à une macros sous Excel.

Malheuresement le format de date me bloque...
  Réponse avec citation
Vieux 22/06/2006, 14h42   #6 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

re

une petite explication :

dans l'exemple que je te donne, je change de répertoire pour me placer là où se trouve mes fichiers (chdir)

ensuite j'ouvre la boite de dialogue XL qui m'affiche les fichiers présents dans ce répertoire, filtré dan smon cas sur les .dat mais tu remplaces par .csv

à l'ouverture du fichier, je convertis les colonnes qui le nécessite en date (valeur 4 utilisée dans workbook.opentext, champ fieldinfo), méthode trouvée sur site microsoft.

si tu veux comprendre regarde l'aide vba pour les mots-clé comme opentext... (éclaire le mot et fais F1)

par contre pour les csv, ton délimiteur entre colonnes est peut-être la virgule ou le point virgule. Tu peux le savoir en utilisant l'enregistreur de macro

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 14h49   #7 (permalink)
Super Moderator
 
Avatar de PascalXLD
 
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 463
Par défaut Re:Excel : Problème des dates avec macros

Bonjour

Pour faire suite à ce que dit Eric si tu ouvres ton csv tu peux choisir lors de l'ouverture le format de la colonne en date JMA

Bonne journée
__________________
Pascal(Visitez mon Blog Photo)

Vous pouvez devenir "Supporter XLD", plus de renseignements ICI
PascalXLD est déconnecté   Réponse avec citation
Vieux 22/06/2006, 14h54   #8 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

Salut Pascal

je pense qu'en ouverture manuelle ordi12 n'a pas de pb, c'est avec vba que les dates sont interprètées us

mais effectivement quand je parle de l'analyseur de macro, si ordi12 sélectionne les formats par colonne, le code généré la fait apparaitre il me semble

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 15h04   #9 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

Bonjour,

mon délimitateur est en effet la virgule, mais il est vrai que manuellement je n'ai aucun problème. c'est seulement avec VB que les dates sont mal interprétées.

Je teste vos solutions et je vous tiens informer.
  Réponse avec citation
Vieux 22/06/2006, 15h15   #10 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

Je viens de tester cette macro :

Sub Macro()

' Sélection du fichier de données
Dim Ouvrir As Variant
' début zone récup .csv

'ouverture de fichier .dat
Ouvrir = Application.GetOpenFilename(filefilter:='Fichier d'Analyse (*.csv),*.csv', Title:='Récupération des Données Génésis')
If Ouvrir = False Then
MsgBox 'Aucun fichier sélectionné', vbOKOnly + vbCritical, 'Fin de procédure '
Sheets('Accueil').Select
erreur = 1
Exit Sub
End If

' utilisation d'Array car données trop nombreuses (sup à env 60 colonnes sur XL97)
Dim ColumnArray(1 To 256, 1 To 2) As Integer
Dim x As Integer

' ColumnArray contient les n° de colonnes et le type de données à prendre encompte
' 1 standard, 4 date
For x = 1 To 256
ColumnArray(x, 1) = x
ColumnArray(x, 2) = 1
Next x
'Définition des colonnes à mettre au format date
'_________________
'méthode par tableau vba
'Dim Coldates(1 To 10) As Integer
' Coldates(1) = 25
' Coldates(2) = 52
' Coldates(3) = 53
' Coldates(4) = 56
' Coldates(5) = 64
' Coldates(6) = 67
' Coldates(7) = 0
' Coldates(8) = 0
' Coldates(9) = 0
' Coldates(10) = 0
' For x = 1 To 10
' If Not Coldates(x) = 0 Then
' ColumnArray(Coldates(x), 1) = Coldates(x)
' ColumnArray(Coldates(x), 2) = 4
' End If
' Next x
'________________

' Ouverture du fichier .csv
Workbooks.OpenText Filename:=Ouvrir _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, _
FieldInfo:=ColumnArray

End Sub

Malheureusement, le format des dates n'est pas correct. Cette macro était-elle bonne ?

Comment puis-je réaliser ce projet (voir le message précédent) ?

Merci de vos conseils
  Réponse avec citation
Vieux 22/06/2006, 15h26   #11 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

re

1/ je pense que la première partie fonctionne (ton csv s'est affiché et tu l'as ouvert

2/ensuite imaginons que tu veux la colonne 4 et la 8 en date, modifie comme suit :

'méthode par tableau vba
Dim Coldates(1 To 10) As Integer
Coldates(1) = 4
Coldates(2) = 8
Coldates(3) = 0
Coldates(4) = 0
Coldates(5) = 0
Coldates(6) = 0
Coldates(7) = 0
Coldates(8) = 0
Coldates(9) = 0
Coldates(10) = 0
For x = 1 To 10
If Not Coldates(x) = 0 Then
ColumnArray(Coldates(x), 1) = Coldates(x)
ColumnArray(Coldates(x), 2) = 4
End If
Next x
'________________

j'ai en effet prévu jusqu'à 10 colonnes dates il faut que tu enlèves les ' de début de ligne (mise en commentaire) et que tu mettes la numéro des colonnes qui t'intéressent et 0 pour remplir coldates jusqu'à l'indice 10

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 15h56   #12 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

Voila ce que j'ai modifié dans la macros :

'méthode par tableau vba
Dim Coldates(1 To 3) As Integer
Coldates(1) = 6
Coldates(2) = 10
Coldates(3) = 11

For x = 1 To 3
If Not Coldates(x) = 0 Then
ColumnArray(Coldates(x), 1) = Coldates(x)
ColumnArray(Coldates(x), 2) = 4
End If
Next x
'________________

Les colonnes que je veux en date sont les colonnes 6, 10 et 11.

Malheureusement, lorsque j'éxécute cette macro le format de date n'est pas bon.

J'avais également vu une solution sur le site de Microsoft mais je n'ai eu aucun résultat satisfaisant (solution trouvé sur le site : http://support.microsoft.com/default...%3Bfr%3B911750)

Comment coriger ce problème, et de plus je n'arrive pas non plus à trier selon les dates puisque le format n'est pas bon ...
  Réponse avec citation
Vieux 22/06/2006, 15h59   #13 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

re

envoie_moi si non confidentiel un petit fichier csv que je vois si je peux te dépanner

eric.seigneur@freesbee.fr

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
Vieux 22/06/2006, 17h03   #14 (permalink)
ordi12
Guest
 
Messages: n/a
Par défaut Re:Excel : Problème des dates avec macros

Je viens de vous envoyer le fichier *.csv en espérant que vous pourrez m'aider.
  Réponse avec citation
Vieux 22/06/2006, 18h22   #15 (permalink)
XLDnaute Barbatruc
 
Avatar de ERIC S
 
Date d'inscription: février 2006
Localisation: Bois Guillaume (76)
Messages: 2 033
Par défaut Re:Excel : Problème des dates avec macros

re

c'est ok on va travailler en direct , on reviendra sur le forum pour que les curieux y trouvent des infos, une fois que ce sera debuggé

A+
__________________
A+

Pas à pas se fait notre chemin. Pas à pas..
ERIC S est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 05h36.


(C) 2006 Excel Downloads