CSV format DOS

Bonjour à tous,

J'ai été aidé sur le code suivant par Galopin01 et je l'en remercie vivement.

J'ai quasiment fini ce que je souhaitais faire, mais un souci subsiste dans la génération de mon fichier CSV

en effet, le format attendu est un CSV DOS qui n'a pas de séparateur ";" en fin de ligne.

Le code ci-dessous est facile à modifier pour ma première ligne. car il suffit que je supprime '& Sep' à la fin.

Open chemincsv For Output As #1

Tmp = CStr([A1]) & Sep & CStr([A2]) & Sep & CStr([A3]) & Sep

La première ligne ne fait que 3 cellules de A à C mais les suivante vont de A à AM. Si le nombre de colonne ne varie pas, le nombre de ligne quant à lui est variable.

Question, comment modifier la portion suibante pour ne pas avour le SEP apès la dernière valeur de la ligne?

For Each oL In Plage.Rows

Tmp = ""

For Each oC In oL.Cells

Tmp = Tmp & CStr(oC.Text) & Sep

Next

Print #1, Tmp

Next

Merci beaucoup de voter aide

Ci-dessous le code en entier.

Sub Fct_Export_CSV()

chemincsv = "blablabla"

Worksheets("CSV").Select

Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$

Sep = ";"

Set Plage = ActiveSheet.Range("A2:AM" & ActiveSheet.Range("A65000").End(3).Row)

Open chemincsv For Output As #1

Tmp = CStr([A1]) & Sep & CStr([A2]) & Sep & CStr([A3]) & Sep

Print #1, Tmp

For Each oL In Plage.Rows

Tmp = ""

For Each oC In oL.Cells

Tmp = Tmp & CStr(oC.Text) & Sep

Next

Print #1, Tmp

Next

Close

End Sub

Bonjour

PAPA WALKER a écrit :

Question, comment modifier la portion suibante pour ne pas avour le SEP apès la dernière valeur de la ligne?

Il faut mettre ton séparateur au début

Sub Fct_Export_CSV()
  chemincsv = "blablabla"
  Worksheets("CSV").Select
Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
  Sep = ";"
  Set Plage = ActiveSheet.Range("A2:AM" & ActiveSheet.Range("A65000").End(3).Row)
  Open chemincsv For Output As #1
  Tmp = CStr([A1]) & Sep & CStr([A2]) & Sep & CStr([A3]) & Sep
  Print #1, Tmp
  For Each oL In Plage.Rows
    Tmp = ""
    For Each oC In oL.Cells
      Tmp = Tmp & Sep & CStr(oC.Text)
    Next
    Print #1, Mid(Tmp, Len(Sep) + 1)
  Next
  Close
End Sub

bonjour,

Eaasaie :

Sub Fct_Export_CSV()
chemincsv = "blablabla"
Worksheets("CSV").Select
Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
Set Plage = ActiveSheet.Range("A2:AM" & ActiveSheet.Range("A65000").End(3).Row)
Open chemincsv For Output As #1
Tmp = CStr([A1]) & Sep & CStr([A2]) & Sep & CStr([A3])
Print #1, Tmp
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Tmp = Left(Tmp, Len(Tmp) - 1)
Print #1, Tmp
Next
Close
End Sub

A+

Je vais essayer ça aussi.

le code précédent a l'air de fonctionner aussi.

comme ça j'ai deux solutions potentielles.

Merci à tous

Bonjour, désolé de faire remonter ce post mais j'aurais une question.

Le code précédent m'est très utile, cependant, je n'ai pas le même nombre de case sur chaque ligne, je me retrouve donc quand même avec des séparateurs à la fin de certaines lignes.. comment puis-je faire ?

Merci de vos réponses !

Rechercher des sujets similaires à "csv format dos"