Bonjour le forum,
j'ai plusieurs fichiers CSV que je dois importer dans Excel via "données" puis "à partir d'un texte" et les enregistrer dans un dossier du jour j'ai fait cela directement avec l'éditeur de Macro (voir ci dessous) mais je souhaiterai ouvrir au départ une boite de dialogue pour choisir le fichier et idem en fin pour l'enregistrer en reprenant déjà le nom du fichier par défaut mais extension XLS.
de plus certains fichiers n'ont pas l'origine du fichier en windows (ANSI) je n 'ai pas trouvé comment l'écrire en VBA pour le prendre par défaut.
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\...\Desktop\Fichier contrats\Export_Contrats_(Export_Paie) le 31-10-18.csv" _
, Destination:=Range("$a$1"))
.Name = "Export_Contrats_(Export_Paie) le 31-10-18"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ChDir "C:\Users\....\Desktop\Fichier contrats"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\...\Desktop\Fichier contrat\Export_Contrats_(Export_Paie) le 31-10-18 Essa.xls" _
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("A1").Select
End Sub
Merci par avance pour votre aide
cordialement
Christophe
j'ai plusieurs fichiers CSV que je dois importer dans Excel via "données" puis "à partir d'un texte" et les enregistrer dans un dossier du jour j'ai fait cela directement avec l'éditeur de Macro (voir ci dessous) mais je souhaiterai ouvrir au départ une boite de dialogue pour choisir le fichier et idem en fin pour l'enregistrer en reprenant déjà le nom du fichier par défaut mais extension XLS.
de plus certains fichiers n'ont pas l'origine du fichier en windows (ANSI) je n 'ai pas trouvé comment l'écrire en VBA pour le prendre par défaut.
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\...\Desktop\Fichier contrats\Export_Contrats_(Export_Paie) le 31-10-18.csv" _
, Destination:=Range("$a$1"))
.Name = "Export_Contrats_(Export_Paie) le 31-10-18"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ChDir "C:\Users\....\Desktop\Fichier contrats"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\...\Desktop\Fichier contrat\Export_Contrats_(Export_Paie) le 31-10-18 Essa.xls" _
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("A1").Select
End Sub
Merci par avance pour votre aide
cordialement
Christophe