Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de date

sednanref

XLDnaute Nouveau
Bonjour,

Je souhaite ouvrir un fichier .csv que j'exporte à partir d'une application (le séparateur utilisé est une virgule et je n'ai pas la possibilité de le modifier lors de mon extraction) via une macro VBA lancée à partir d'un autre fichier Excel.
L'ouverture du fichier doit permettre de mettre en forme directement le fichier en séparant les colonnes

J'ai une macro qui permet de faire cela mais je me retrouve confronté à un problème de format de date.
En effet, j'ai deux colonnes avec des dates et celles-ci se retrouvent parfois inversé (pas toutes...)
Ex : JJ/MM/AAAA devient MM/JJ/AAAA



Voici le code de ma macro :
Code:
Sub Ouvrir_Fichier()
    ' Cette fonction ouvre le fichier source
    
    ' Définition des chemins de fichiers
    Fichier_1 = ThisWorkbook.Path & "\export.csv"

    ' Ouverture du fichier d'expor
    Workbooks.OpenText Fichier_1, Origin:= _
    xlWindows, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True _
    , Space:=False, Other:=False
End Sub


Voirci joint les fichiers :
- Test.xlsm : Fichier pour ouvrir le fichier d'export csv
- export.csv.txt (à renommer en enlevant ".txt) : fichier d'exportation


Résultats :
Résultat souhaité - Correct :
1.png
Résultat obtenu (via macro) - Erroné :
2.png


J'aurais donc aimé savoir si quelqu'un avait une solution à mon problème (en attendant je fais la manipulation manuellement via Données/Convertir ...)

Merci :)
 

Pièces jointes

  • Test.xlsm
    17.3 KB · Affichages: 139
  • Test.xlsm
    17.3 KB · Affichages: 159
  • Test.xlsm
    17.3 KB · Affichages: 163
  • export.csv.txt
    493 bytes · Affichages: 119
  • 1.png
    1.png
    14.5 KB · Affichages: 393
  • 1.png
    1.png
    14.5 KB · Affichages: 404
  • 2.png
    2.png
    14.9 KB · Affichages: 362
  • 2.png
    2.png
    14.9 KB · Affichages: 405

sednanref

XLDnaute Nouveau
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Merci de ta réponse.

Mais oui, malheureusement, j'ai déjà essayé et ça ne fonctionne pas.
Dans mes paramètres régionaux Windows, j'utilise ";" comme séparateur de liste (J'utilise d'autres extractions avec point-virgule et là j'ai pas de soucis de format de date ou autre).
 

MJ13

XLDnaute Barbatruc
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Re

Sinon, essaye de travailler sur un fichier txt en renommant ton . Csv en .txt (un .csv est un .txt qui s'ignore). Utilise l'enregistreur de macros avec l'assistant d'importation et regarde comment est interprétée la date, dont tu dois normalement pouvoir choisir le type.

Ensuite réintègre le code VBA et si cela fonctionne, tu as de la chance :).
 

sednanref

XLDnaute Nouveau
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Nop même résultat :/

Voici le code généré
Code:
ChDir "C:\Users\***\Desktop"
Workbooks.OpenText Filename:="C:\Users\***\Desktop\export.txt", _
Origin:=1257, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), _
TrailingMinusNumbers:=True
 

Efgé

XLDnaute Barbatruc
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Bonjour à tous, Une autre idée... Cordialement
 

Pièces jointes

  • Classeur4.xls
    24 KB · Affichages: 332
  • Classeur4.xls
    24 KB · Affichages: 364
  • Classeur4.xls
    24 KB · Affichages: 358
Dernière édition:

sednanref

XLDnaute Nouveau
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Bonjour,

Merci pour ta contribution, à priori ça marche bien !

Par contre, ton code recopie le contenu du fichier .csv dans le même fichier Excel qui lance la macro.

Est-il possible de recopier le contenu du fichier dans un nouveau fichier Excel qui s’appellerait "export mis en forme.xls" par exemple ?
(désolé, je n'ai pas les compétences pour trouver la solution seul :/)

Merci
 

Efgé

XLDnaute Barbatruc
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Re, Avec un peu de recherche (utiliser l'enregistreur de macro par exemple) tu aurais pu trouver.... Mais bon... ....allez... Je te laisse quand même le soin de gérer le nom de ton classeur (attention à l'écrasement du précédent... : ) ) Cordialement
 

Pièces jointes

  • Classeur5.xls
    27 KB · Affichages: 285
  • Classeur5.xls
    27 KB · Affichages: 335
  • Classeur5.xls
    27 KB · Affichages: 336

MJ13

XLDnaute Barbatruc
Re : Ouverture CSV via macro VBA (séparateur ",") avec mis en forme - PB de format de

Bonjour sednanref, Efgé

En renommant ton .csv en .Txt, voici un code que j'ai testé qui fonctionne chez moi, mais peut-être pas chez toi.

Code:
Sub Importe_TXT()

    Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & "export.txt", _
        Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma _
        :=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, _
        1), Array(3, 3), Array(4, 3), Array(5, 1), Array(6, 1), Array(7, 1)), _
        TrailingMinusNumbers:=True, local:=True
End Sub
 

Discussions similaires

Réponses
13
Affichages
1 K

Statistiques des forums

Discussions
314 628
Messages
2 111 333
Membres
111 104
dernier inscrit
JEMADA