Sub ExportCSV()
Dim t, chemin$, NomFichier$
t = Timer
'chemin = "P:\AP\5 B\5 CSV IMPORT\" ' Ne pas oublier "\" à la fin
chemin = ThisWorkbook.Path & "\"
NomFichier = "Export_" & Sheets("EN TETE").[AK2] & Format(Date, "_yyyy_mm_dd")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Sheets("CSV").ListObjects(1).DataBodyRange
Workbooks.Add 'nouveau document
[A1].Resize(.Rows.Count, .Columns.Count) = .Value 'copie les valeurs
End With
With ActiveWorkbook
.SaveAs Filename:=chemin & NomFichier, FileFormat:=xlCSV, local:=True
.Close savechanges:=False
End With
MsgBox Timer - t
End Sub
Sub test_patricktoulon()
Dim dossier$, X&, chemin$, fichier$, texte$
dossier = "P:\AP\5 B\5 CSV IMPORT\"
fichier = Sheets("EN TETE").[AK2] & Format(Date, "_yyyy-mm-dd") & ".csv"
chemin = dossier & fichier
Range("CSV").Copy ' on copie le tableau structuré sans les entetes
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .GetFromClipboard: texte = .GetText(1)
texte = Replace(Replace(texte, vbTab, ";"), " ", ";"): End With
X = FreeFile: Open chemin For Output As #X: Print #X, texte: Close #X
Application.CutCopyMode = False
End Sub
texte = Replace(Replace(texte, vbTab, ";"), "; ;", ";;;"): End With
Bonsoir,si le dossier existe alors il ne devrait pas y avoir de probleme
colonne vide corrigée
VB:Sub test_patricktoulon() Dim dossier$, X&, chemin$, fichier$, texte$ dossier = "P:\AP\5 B\5 CSV IMPORT\" fichier = Sheets("EN TETE").[AK2] & Format(Date, "_yyyy-mm-dd") & ".csv" chemin = dossier & fichier Range("CSV").Copy ' on copie le tableau structuré sans les entetes With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .GetFromClipboard: texte = .GetText(1) texte = Replace(Replace(texte, vbTab, ";"), " ", ";"): End With X = FreeFile: Open chemin For Output As #X: Print #X, texte: Close #X Application.CutCopyMode = False End Sub
Oui mais lorque j'ouvre le fichier CSV la colonne vide n'y es pas pourtant, je ne comprends pas ...
Ok je crois comprendre,
Sub ExportCSV()
Dim t, chemin$, NomFichier$
t = Timer
'chemin = "P:\AP\5 B\5 CSV IMPORT\" ' Ne pas oublier "\" à la fin
chemin = ThisWorkbook.Path & "\"
NomFichier = "Export_" & Sheets("EN TETE").[AK2] & "_" & Year(Now) & "_" & Month(Now) & "_" & Day(Now) & ".csv"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("CSV").Copy
ActiveSheet.ListObjects(1).Unlist 'convertit le tableau en plage
Rows(1).Delete 'supprime la ligne des en-têtes
With ActiveWorkbook
.SaveAs Filename:=chemin & NomFichier, FileFormat:=xlCSV, local:=True
.Close savechanges:=False
End With
MsgBox Timer - t
End Sub
Sub ExportCSV()
Dim t, chemin$, NomFichier$
t = Timer
'chemin = "P:\AP\5 B\5 CSV IMPORT\" ' Ne pas oublier "\" à la fin
chemin = ThisWorkbook.Path & "\"
NomFichier = "Export_" & Sheets("EN TETE").[AK2] & Format(Date, "_yyyy_mm_dd")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Sheets("CSV").ListObjects(1).DataBodyRange
Workbooks.Add 'nouveau document
[A1].Resize(.Rows.Count, .Columns.Count) = .Value 'copie les valeurs
End With
With ActiveWorkbook
.SaveAs Filename:=chemin & NomFichier, FileFormat:=xlCSV, local:=True
.Close savechanges:=False
End With
MsgBox Timer - t
End Sub
Allons allons, s'il y a plusieurs tableaux à copier il suffit de faire une boucle :quand on veut sauver une plage précise , un tableau structuré et qu'il y en a plusieurs sur la feuille ben on est chocolat
Sub ExportCSV()
Dim t, chemin$, NomFichier$, F As Worksheet, n%, dest As Range
t = Timer
'chemin = "P:\AP\5 B\5 CSV IMPORT\" ' Ne pas oublier "\" à la fin
chemin = ThisWorkbook.Path & "\"
NomFichier = "Export_" & Sheets("EN TETE").[AK2] & Format(Date, "_yyyy_mm_dd")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set F = Sheets("CSV")
For n = 1 To F.ListObjects.Count
With F.ListObjects(n).DataBodyRange
If n = 1 Then
Workbooks.Add 'nouveau document
Set dest = [A1]
Else
Set dest = dest.Offset(, F.ListObjects(n - 1).DataBodyRange.Columns.Count + 1)
End If
dest.Resize(.Rows.Count, .Columns.Count) = .Value 'copie les valeurs
End With
Next n
With ActiveWorkbook
.SaveAs Filename:=chemin & NomFichier, FileFormat:=xlCSV, local:=True
.Close savechanges:=False
End With
MsgBox "Durée " & Format(Timer - t, "0.00 \sec")
End Sub