Convertir un fichier CSV vers XLS Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
b
borrougagnou
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 12 janvier 2015
Version d'Excel : 2002,2003,2010

Message par borrougagnou » 13 janvier 2015, 12:01

Bonjour, ^^"

J'ai besoin de votre aide pour faire fonctionner la macro suivante qui malheureusement ne fonctionne pas comme je le voudrai :
J'ai un bouton qui lorsque je clique dessus :
- Demande d'ouvrir un fichier csv qui pointe vers le dossier F:\analyse\
- Ouvre le fichier dans Excel et le converti directement avec comme séparateur des points-virgules ( ; )
- l'enregistre sous le même nom et dans le même répertoire avec l'extension xls

Voici ce que j'ai crée comme macro mais sa marche mal x.x:
Sub Macro1()

    Dim Fichier As Variant

    msgbox "Veuillez ouvrir votre fichier"

    'Mets le répertoire F:\analyse comme répertoire pointé avec la liberté de choisir un autre répertoire dans boite de dialogue Ouvrir
     'Affiche la boîte de dialogue "Ouvrir"
     Fichier = Application.GetOpenFilename("F:\analyse")

    'Si cliqué sur bouton annuler annule tout
     If Fichier = False Then Exit Sub

    'Converti avec séparateur ";"
     Workbooks.OpenText Filename:=Fichier, DataType:=xlDelimited, TextQualifier:=xlNone, Other:=True, OtherChar:=";", ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, TrailingMinusNumbers:=True

   'Sauvegarde du fichier sous le même nom que le fichier csv
    '(ex: fichier1.csv ---> fichier1.xls ou monnom.csv ---> monnom.xls)
    ActiveWorkbook.SaveAs Filename:="" & ".xls", Local:=True, FileFormat:=xlExcel8, ReadOnlyRecommended:=False, CreateBackup:=False

    msgbox "votre fichier est sauvegardé sur" & Fichier
End Sub
Merci de bien vouloir m'aider une seconde fois ^^"
Cordialement.
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'468
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 13 janvier 2015, 12:54

bonjour,

qu'est-ce qui marche mal ?

si tu mettais un exemple de ton fichier csv, ce serait plus simple pour déboger.
b
borrougagnou
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 12 janvier 2015
Version d'Excel : 2002,2003,2010

Message par borrougagnou » 13 janvier 2015, 13:06

voici un exemple
boc1.csv
Exemple de fichier csv
(989 Octets) Téléchargé 69 fois
et quand je lance le script il m'affiche:
La méthode 'GetOpenFilename' de l'objet '_Application' à échouer
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'468
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 13 janvier 2015, 13:40

bonjour,

essaie ceci

    ChDir "f:\analyse"
    Fichier = Application.GetOpenFilename("csv file (*.csv),*.csv")
T
Timothe URVOY
Membre fidèle
Membre fidèle
Messages : 371
Inscrit le : 9 octobre 2014
Version d'Excel : Excel2010 & Excel2013

Message par Timothe URVOY » 13 janvier 2015, 13:46

Je regarde ton code dans deux secondes, je te passe le code que Jean-Eric avais fait pour m'aider sur un projet.
Permet à l'utilisateur d'aller chercher un fichier .csv, de l'ouvrir, le convertir, le mettre en forme (ne t'intéresse pas dans l'immédiat) et l'enregistre au format .xlsX
Par contre besoin presssaaannttt aaahhhh :arrow:
thimothe_urvoy_v1.xlsm
(26.12 Kio) Téléchargé 175 fois
Je ne sais pas qui t'a dis de te servir de ta tête pour résoudre les problèmes ... mais ça ne voulait surement pas dire "sers-t'en SUR l'ordinateur" !
b
borrougagnou
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 12 janvier 2015
Version d'Excel : 2002,2003,2010

Message par borrougagnou » 13 janvier 2015, 13:49

h2so4> sa marche mais maintenant j'ai l'erreur:
La méthode 'SaveAs' de l'objet '_Workbook' à échouer :/

Timothe URVOY> les gens qui vont utiliser ce fichiers vont être sur office 2003 et qui plus est il y a des macro qui seront intégré (sur une autre feuille) lors de l'enregistrement du fichier
en ce qui concerne ton fichier c'est un peux ce que je cherche: il le place dans le bon dossier mais ne possède pas le nom original ni la bonne extension :/ et je n'arrive pas à l'entrer dans mon code :/ sans qu'il m'affiche d'erreur :/ donc bon
Modifié en dernier par borrougagnou le 13 janvier 2015, 14:28, modifié 1 fois.
T
Timothe URVOY
Membre fidèle
Membre fidèle
Messages : 371
Inscrit le : 9 octobre 2014
Version d'Excel : Excel2010 & Excel2013

Message par Timothe URVOY » 13 janvier 2015, 14:26

Tu remplaces le format de sauvegarde :
Le format 97-2003
FileFormat:=xlExcel8
Et ça sauvegardera avec la bonne extension (.xls)
Je regarde pour le nom du fichier de sauvegarde
Je ne sais pas qui t'a dis de te servir de ta tête pour résoudre les problèmes ... mais ça ne voulait surement pas dire "sers-t'en SUR l'ordinateur" !
b
borrougagnou
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 12 janvier 2015
Version d'Excel : 2002,2003,2010

Message par borrougagnou » 13 janvier 2015, 14:30

Timothe URVOY> oui si tu regarde ma macro tu trouve cette ligne
mais ce qui me pose problème dans ma macro c'est l'enregistrement du fichier dans le répertoire même
T
Timothe URVOY
Membre fidèle
Membre fidèle
Messages : 371
Inscrit le : 9 octobre 2014
Version d'Excel : Excel2010 & Excel2013

Message par Timothe URVOY » 13 janvier 2015, 14:42

       ' enregistrement fichier
        myPath = ActiveWorkbook.Path & Application.PathSeparator
        myFile = ActiveWorkbook.Name
        ActiveWorkbook.SaveAs FileName:=myPath & myFile, FileFormat:=xlExcel8
        wbSource.Close False]
J'ai changé pour que cela prenne le nom du classeur actif. Ca à l'air de fonctionner, tu me dis si ça marche aussi pour toi ?

Oula attend j'ai parlé un peu vite :ordi3:
Ok donc il copie le nom complet, je regarde pour virer le .csv qui fait bugger la partie sauvegarde et normalement ça va marcher
Je ne sais pas qui t'a dis de te servir de ta tête pour résoudre les problèmes ... mais ça ne voulait surement pas dire "sers-t'en SUR l'ordinateur" !
b
borrougagnou
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 12 janvier 2015
Version d'Excel : 2002,2003,2010

Message par borrougagnou » 13 janvier 2015, 14:54

il me demande si je veux remplacer le fichier csv original:

si je fais oui il m'affiche une erreur 424 en me demandant "Objet requis"

si je fais non il m'affiche erreur d’exécution 1004 disant que le format de fichier est différent de celui spécifié par l’extension de fichier et il me demande de regarder si mon fichier n'est pas corrompu x.x
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message