Macro Excel qui crée un nouveau fichier à partir d'une feuille
Bonjour je vous explique la problématique que je rencontre, je ne suis pas très fort en VBA donc j'apprends, là j'ai un travail en plusieurs étapes à faire
1/ en gros j'ai un fichier XLSM avec par exemple la 1ère feuille et la macro derrière, et je veux créer un nouveau fichier XLS à partir de la première feuille du fichier de base
2/ J'ai ensuite une macro qui convertit ce fichier XLS en fichier CSV, et là ce que je veux savoir c'est comment ré utiliser le nouveau fichier dans cette macro là
La macro qui convertit le fichie a un début qui ressemble à ça (je mets que le début car ça marche ça)
Function CSVConverted(fileToConvert As String) As String
Dim toConvertFile As String
Dim convertedFile As String
Dim Rows As Long
Dim Cols As Long
Dim J As Long
Dim K As Long
Dim sTemp As String
Dim sSep As String
Dim wb As Workbook
Mais voilà comment je fais pour que mon fileToConvert soit bien le nouveau fichier XLS choisit et qu'il reconnaisse bien ? Je suis vraiment perdu
J'ai un truc du genre en ébauche
Sub CreateFile()
Dim nomFichier As String
Dim chemin As String
Dim sSep As String
Dim sInFilePath As String
Dim sOutFilePath As String
chemin = ThisWorkbook.Path & "\"
nomFichier = chemin & "test.csv"
ThisWorkbook.Worksheets("Deliveries").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=nomFichier, FileFormat:=xlCSV, local:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
Mais en gros ré utiliser le fichier crée à partir de ça dans la macro du 2, voilà voilà
Sub CreateFile()
' Copy the active sheet
' This automatically creates a new workbook
' with the sheet copied in it
Dim nomFichier As String
Dim chemin As String
chemin = ThisWorkbook.Path & "\"
nomFichier = chemin & "test.xlsx"
ThisWorkbook.Worksheets(1).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=nomFichier, local:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
JE tente ça, mais ça marche pas, je comprends pas, pourtant je veux que ça me crée un nouveau fichier Excel dans le meme chemin que le premier fichier XLSM, raaaah
Ah non c'est bon un nouveau fichier est bien crée ! Mais maintenant il faut utiliser le fichier crée dans la macro précédente pour l'appliquer dans la macro qui convertit en CSV...
Function CSVConverted(fileToConvert As String) As String
Dim toConvertFile As String
Dim convertedFile As String
Dim Rows As Long
Dim Cols As Long
Dim J As Long
Dim K As Long
Dim sTemp As String
Dim sSep As String
Dim wb As Workbook
C'est à dire j'ai mon filename c'est nomFichier et tout mais je sais pas quoi en faire
Bonjour, je vois pas trop l'intérêt de passer par un fichier xlsx avant ?
Cependant pourquoi vous fermez votre fichier xlsx ? quand il est ouvert il suffit de lui demander un enregistrement en csv avant de le fermer.
Dans la même macro création des deux fichiers.
Sub createFile()
Dim nomFichier As String
Dim chemin As String
Dim nomcsv As String
chemin = ThisWorkbook.Path & "\"
nomFichier = chemin & "test.xlsx"
nomcsv = chemin & "test.csv"
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Feuil1").Copy
'CREATION FICHIER XLSX
ActiveWorkbook.SaveAs Filename:=nomFichier, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
'CREATION FICHIER CSV
ActiveWorkbook.SaveAs Filename:=nomcsv, _
FileFormat:=xlCSV, CreateBackup:=False
'Fermer fichier
ActiveWorkbook.Close
Application.DisplayAlerts = True