Macro _Exporter des données au format csv

senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   -  
senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

Maurice
 
Bonjour
voila une nouvelle macro
peux etre plus simple pour toi
Sub 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
0
senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour Maurice pour c code.
Mais je souhaiterais partir des codes dans mon fichier.
l'idée c'est de comprendre pourquoi mon code ne fonctionne pas.
Auriez-vous une idée ?
Merci d'avance
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
0
senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   3
 
BonjourCCM81,
J'ai testé votre code mais ça ne fonctionne pas.
C'est vrai que la solution de Maurice marche mais j'aiemrais comprendre pourquoi mon code ne marche pas alors que tout semble être OK.
C'est là la question.
0