Enregistrer sous en VBA

Bonjour,

Je suis sur un fichier Excel "Fichier1.xlsm" dans le dossier C:\USER\Mes documents\Dossier1\Dossier2\Dossier3\Fichier1.xlsm.

J'ai ouvert le VBA de ce "Fichier1.xlsm" sur lequel j'écris une macro pour ouvrir un "Fichier2.csv" et l'enregistrer sous "Fichier2.xlsx".

A noter que le chemin du "Fichier2.csv" est : C:\USER\Mes documents\Dossier1\Dossier2\Dossier3\Fichier2.csv.

J'ai exécuté cette macro mais c'est le fichier Fichier1.xlsm qui est enregistré sous Fichier1.xlsx alors que mon but c'est que le Fichier2.csv soit enregistré sous Fichier2.xlsx.

Si c'est possible de me communiquer SVP un simple code puisque je suis débutant en VBA.

 
    '.....

    Dim CheminPC As String

    CheminPC = "C:\USER\Mes documents\Dossier1\Dossier2\Dossier3\"

    Dim objSaveBox As FileDialog

    Set objSaveBox = Application.FileDialog(msoFileDialogSaveAs)

    With objSaveBox

    .InitialFileName = CheminPC & "Fichier2.csv"
    .FilterIndex = 1
    .Show
    .Execute

    End With

    '...

Merci par avance pour votre aide

Bonjour, a adapter si les chemins d'enregistrement ou d'ouverture sont différents ?

Sub Macro1()

Dim chemin As String
'Chemin d'enregistrement et d'ouverture
chemin = "C:\USER\Mes documents\Dossier1\Dossier2\Dossier3\"
Application.DisplayAlerts = False

'Ouverture fichier format csv et convertion xls
 Workbooks.OpenText Filename:=chemin & "Fichier2.csv", Origin:=xlWindows, _
                StartRow:=1, DataType:=xlDelimited, Semicolon:=True, Comma:=True
ActiveCell.CurrentRegion.Columns(1).TextToColumns Comma:=True

'Sauvegarde au format xlsx et fermeture
    ActiveWorkbook.SaveAs Filename:= _
        chemin & "Fichier2.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub

Bonjour,

Merci pour votre réponse,

C'est enregistré sous "Fichier2.xlsx" mais en ouvrant le fichier à le contenu des colonnes est toujours sous csv (;).

A noter que si j'ouvre manuellement le fichier "Fichier2.csv" et je fais enregistrer sous et je sélectionne Classeur Excel et j'enregistre sous "Fichier2.xlsx" alors le contenu des colonnes est bien sous format Excel.

Merci.

Re bonjour,

Remplacez comma:=true par comma:=false et ajoutez Local:=true

Sub Macro1()
'
' Macro1 Macro
Dim chemin As String
'Chemin d'enregistrement et d'ouverture
chemin = "C:\USER\Mes documents\Dossier1\Dossier2\Dossier3\"
Application.DisplayAlerts = False

'Ouverture fichier format csv et convertion xls
 Workbooks.OpenText Filename:=chemin & "Fichier2.csv", Origin:=xlWindows, _
                StartRow:=1, DataType:=xlDelimited, semicolon:=True, comma:=False, local:=True

'Sauvegarde au format xlsx et fermeture
    ActiveWorkbook.SaveAs Filename:= _
        chemin & "Fichier2.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub

Rebonjour,

Ca marche à merveille

10000000000000000000000000000000000000000000000000000000 Merci

Super !

Rechercher des sujets similaires à "enregistrer vba"