Création d'un macro de lecture de fichiers CSV et sauvegarde sous Excel

Bonjour,

J'ai quelques centaines de fichiers sous format "csv" dans un répertoire. J'ai besoin de créer une macro qui ouvre chaque fichier sous Excel et sauvegarde chaque fichier sous format "xls" sans effectuer aucune transformation (je ne peux juste sauvegarder le fichier car Excel l'enregistre sous format csv à nouveau, il faut vraiment que le fichier sauvegardé ait l'extension xls). Pouvez-vous m'indiquer comment faire ?

Merci d'avance.

Philippe

Bonjour PhilippeDV,

Voilà un peu d'aide, a tester.

Pour vérifier les fichiers .csv dans un répertoire et effectuer une sauvegarde en .xls :

originPath = "C:\Users\" & Environ("username") & "\Downloads\" 'Chemin d'origine où se trouve les fichiers .csv
fileIdentify = Dir(originPath & "*.csv") 'Fichiers à identifier
fileName = fileIdentify & ".xls"
    Application.ScreenUpdating = True

    Do While fileIdentify <> ""
        On Error GoTo checkNextFile
       Workbooks.OpenText Filename:=(originPath & fileIdentify), Origin:=xlWindows, Local:=True
       ActiveWorkbook.SaveAs Filename:=originPath & fileName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
       ActiveWorkbook.Close
       Kill originPath & fileIdentify

checkNextFile:
        On Error Resume Next
        fileIdentify = Dir

    Loop

Cordialement,

Bonjour,

Quel est l'objectif d'enregistrer des csv en xls (ou xlsx, à préciser).

Que fais-tu après ?

Cdlt.

Merci pour vos réponses. Je vais tester la solution cet après-midi et reviendrai vers vous pour vous informer. La raison pour laquelle j'ai besoin de faire cette transformation est que je veux extraire une information que contiennent ces fichiers avec Stata. Or le fichier est en ascii dans un format totalement non standard, que Stata ne peut pas lire. Stata possède une commande "import excel" qui permet de ne sélectionner que certaines cellules dans un fichier Excel lors de la lecture.

Bonsoir,

Il a fallu que j'adapte un peu la procédure, mais cela fonctionne. Voici la procédure adaptée:

Sub Sauvegarde_ss_Excel()

'

' Sauvegarde_ss_Excel Macro

'

' Touche de raccourci du clavier: Ctrl+s

'

originPath = "C:\Users\phili\Dropbox\Donnees telechargees REDGAS\Hapex\CSV\" 'Chemin d'origine où se trouve les fichiers .csv

destinPath = "C:\Users\phili\Dropbox\Donnees telechargees REDGAS\Hapex\XLS\" 'Chemin de destination où sauvegarder les fichiers .xls

Application.ScreenUpdating = True

fileIdentify = Dir(originPath & "*.csv") 'Fichiers à identifier

Do While fileIdentify <> ""

On Error GoTo checkNextFile

longficn = Len(fileIdentify)

Nomfic = Mid(fileIdentify, 1, longficn - 4)

Filename = Nomfic & ".xls"

Workbooks.OpenText Filename:=(originPath & fileIdentify), Origin:=xlWindows, Local:=True

ActiveWorkbook.SaveAs Filename:=(destinPath & Filename), FileFormat:=xlOpenXMLStrictWorkbook, CreateBackup:=False

ActiveWorkbook.Close

Kill originPath & fileIdentify

checkNextFile:

On Error Resume Next

fileIdentify = Dir

Loop

End Sub

Seul petit souci: les fichiers *.csv* sont effacés au fur et à mesure. Je suppose que si je retire "fileIdentify" de l'instruction kill cela n'arrivera plus.

Merci pour votre aide, précieuse !

Philippe

Rechercher des sujets similaires à "creation macro lecture fichiers csv sauvegarde"