Macro _Exporter des données au format csv
senecartour
Messages postés
391
Statut
Membre
-
senecartour Messages postés 391 Statut Membre -
senecartour Messages postés 391 Statut Membre -
Bonjour,
J'ai trouvé un code en ligne que j'essaie d'adapter à mon cas.
Je souhaite exporter les données de ma feuille dans un fichier texte.
Mais j'ai un message d'erreur au lancement de ma macro "Sub, Function ou property attendu".
J'ai beau recherché, je ne trouve pas les causes de l'erreur.
Je vous joins le fichier avec le code via le lien
https://www.cjoint.com/c/FAAk1BvUwih
Merci d'avance pour votre aide
--
Partager son savoir est la meilleure façon d'apprendre!
J'ai trouvé un code en ligne que j'essaie d'adapter à mon cas.
Je souhaite exporter les données de ma feuille dans un fichier texte.
Mais j'ai un message d'erreur au lancement de ma macro "Sub, Function ou property attendu".
J'ai beau recherché, je ne trouve pas les causes de l'erreur.
Je vous joins le fichier avec le code via le lien
https://www.cjoint.com/c/FAAk1BvUwih
Merci d'avance pour votre aide
--
Partager son savoir est la meilleure façon d'apprendre!
2 réponses
-
Bonjour
voila une nouvelle macro
peux etre plus simple pour toiSub ExportCsv() Application.ScreenUpdating = False Nom = "Testcsv" Ext = ".csv" Fichier = Nom & Ext chemin = ActiveWorkbook.Path & Application.PathSeparator CheminFiche = chemin & Fichier Sep = ";" 'Sep = vbTab Nlig = Cells(Rows.Count, 1).End(xlUp).Row Set plage = Range("A1:C" & Nlig) Open CheminFiche For Output As #1 For Each Lig In plage.Rows Tmp = "" For Each Cel In Lig.Cells Tmp = Tmp & CStr(Cel.Text) & Sep Next Print #1, Tmp Next Close Set plage = Nothing Application.ScreenUpdating = True MsgBox "Terminer" End Sub
A+
Maurice -
Bonjour
L'objet "ADODB.Stream" ne me semble pas adapté pour les fichier texte voir ici
En faisant un brin de ménage dans ton code ceci devrait (à peu près)fonctionner, mais la solution de Maurice, que je salue au passage, est plus adaptée
Option Explicit
Sub exporter()
Enregistrerdonnees "semecartour2"
End Sub
Sub Enregistrerdonnees(ByVal Fichier As String)
Dim Ligne As Long, NombreLigne As Long, NombreColonne As Long, Colonne As Long
Dim oStream As Object
Dim feuille As String, chemin As String
Dim s As String
NombreLigne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
NombreColonne = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
chemin = Application.ActiveWorkbook.Path
feuille = ActiveSheet.Name
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Position = 0
oStream.Charset = "UTF-8"
For Ligne = 1 To NombreLigne
s = Cells(Ligne, 1)
For Colonne = 2 To NombreColonne
s = s & ";" & Cells(Ligne, Colonne)
Next Colonne
oStream.writeText s & Chr(10)
Next Ligne
oStream.savetofile chemin & "\" & Fichier & ".csv"
Set oStream = Nothing
End Sub
Cdlmnt