Sauvegarder fichier

Bonjour à toutes et à tous.

Je vais essayer de faire simple en étant compréhensible (cette fois) !

Je vous explique. Je reçois le matin, 3 fichiers avec des données. Les données ont va dire sont "paralèlles" (c'est le même type), mais ce n'est pas les mêmes (3 entreprises différentes).

Je reçois 3 fichiers au format CSV, chaque vendredi matin je les enregistre en .xlsx, puis ensuite les importent dans mon fichier grâce à ce code :

Sub Import()
    Sheets("Menu").Select
    PathName = Range("C11").Value
    Filename = Range("C12").Value
    TabName = Range("C13").Value
    ControlFile = ActiveWorkbook.Name
    Workbooks.Open Filename:=PathName & Filename
    ActiveSheet.Name = TabName
    Sheets(TabName).Copy After:=Workbooks(ControlFile).Sheets(1)
    Windows(Filename).Activate

    ActiveWorkbook.Close SaveChanges:=False
    Windows(ControlFile).Activate
    Sheets("Menu").Select
    Range("A1").Select
End Sub

Dans C11 se trouve le chemin actuel du fichier (trouvé automatiquement) dans C12 le nom du fichier qui va être importé et dans C13 le nom de la feuille ou les données seront importées.

J'aimerais savoir : est-il possible grâce à une macro d'ouvrir le fichier qui vient le vendredi matin, et de le ré-enregistre en .xlsx ?

J'ai fait un code comme ça :

    PathName = Range("C11").Value
    Filename = Range("C12").Value
    Dataname = Range("C15").Value

    Workbooks.Open Filename:=PathName & Dataname
    ActiveWorkbook.SaveAs Filename:=PathName & Filename, FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close

Le problème c'est qu'il met tout dans la celulle A séparé de " ; " mais lorsque que je le fais à la main pour enregistrer la macro là ça aparaît juste...

Pour info, le fichier CSV que j'ouvre à la base est bien formaté ( une valeur par celulle ) mais quand j'enregistre en .xlsx, il est juste aussi ( une valeur par celulle ) mais lors du passage dans la macro échec.

Merci par avance.

Bonsoir,

des fois, je me demande à quoi cela sert de poster des codes. Je suppose que ta demande est la suite ou un complément de ce lien --> https://forum.excel-pratique.com/post115523.html#p115523

Le code Sub import devrait être celui-ci :

Sub Import()
Dim PathName As String, FileName As String, TabName As String, controlfile As String
With Sheets("Menu")
    .Select
    PathName = .Range("C11").Value
    FileName = .Range("C12").Value
    TabName = .Range("C13").Value
    controlfile = ActiveWorkbook.Name
    Workbooks.Open FileName:=PathName & FileName
    Sheets(TabName).Copy After:=Workbooks(controlfile).Sheets(1)
    Workbooks(FileName).Close SaveChanges:=False
    .Range("A1").Select
End With
End Sub

Le problème c'est qu'il met tout dans la celulle A séparé de " ; "

Dans ton code on ne voit rien au sujet la cellule A. de quoi s'agit-il ?

A bientôt

Il s'agit de la cellule A1 du fichier XLSX (enregistré par rapport au CSV)

merci je teste cet après midi.

-- 18 Fév 2011, 13:51 --

Non çA ne fonctionne pas ...

Il créé bien un fichier .xlsx a partir du fichier CSV (le fichier csv est bien formaté) mais le fichier qui est créé (xlsx) perd tout le formatage et sépart les données de ;.

Merci.

re,

Non çA ne fonctionne pas ...

Normal je ne t'ai pas donné de solution. Le code que j'ai placé dans le post n'est qu'un correctif à celui que tu avais placé dans ta demande.

Pour ton soucis de voir toutes tes données en colonne A, tu as un outil excel qui devrait faire l'affaire je pense (si j'ai bien compris du moins). Sélectionne ta colonne A puis va dans Données / convertir et prends l'option "largeur délimité" puis suis l'assistant qui mettra toutes tes données de la colonne A dans plusieurs colonnes.

Amicalement

Rechercher des sujets similaires à "sauvegarder fichier"