VBA csv

Bonjour à tous,

Après avoir pioché sur le net et adapté à mon fichier un code VBA, je suis confronté à un souci au niveau de la création du CSV à partir d'excel,

Ci-joint le fichier contenant le code, mais également le résultat CSV macro, et le résultat souhaité CSV manuel,

J en sais pas pourquoi je n'obtiens pas le même CSV avec la bonne mise en forme,

Merci d'avance pour votre aide,

Cordialement,

8test.xlsm (21.08 Ko)
62019-12-macro.csv (234.00 Octets)
72019-12-manuel.csv (234.00 Octets)

Bonjour,

en passant pas un fichier du bloc note.

Voir Macro 2 qui aliment de fichier bloc note à mettre dans le même répertoire que le fichier excel.

3test-1.xlsm (21.86 Ko)
3nouveau-doc.csv (4.00 Octets)

J en sais pas pourquoi je n'obtiens pas le même CSV avec la bonne mise en forme,

Chez moi ça fonctionne normalement, hormis la date qui est au format jj/mm/aa comme dans ton fichier Excel (au lieu de jj/mm/aaaa dans ton csv manuel).

Et si, dans ton fichier Excel, je mets la date au format jj/mm/aaaa, j'obtiens un fichier identique à ton fichier csv manuel.

Ton Excel ne serait-il pas une version Anglaise ? Local:= True donnerait alors un séparateur virgule au lieu de point-virgule

Bonjour,

Essaie ainsi :

Sub ExportCSV()
Dim rngCSV As Range
Dim Etab As String
Dim iYear As Integer, iMonth As Integer
Dim lastRow As Long
Dim sFullName As String
Const sPATH As String = "T:\POLE-Enfance\Comptabilite Gestion\CONTROLE DE GESTION - ETUDES - PROJETS\"

    With Sheets("Code")
        Etab = .Cells(6).Value
        iYear = .Cells(9).Value
        iMonth = .Cells(11).Value
    End With

    sFullName = sPATH & Etab & "\CAISSE\" & iYear & "\CSV\" & iYear & "-" & iMonth & ".csv"

    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rngCSV = .Cells(2, 1).Resize(lastRow - 1, 10)
    End With

    Workbooks.Add (xlWBATWorksheet)
    rngCSV.Copy Destination:=Cells(1)
    With ActiveWorkbook
        'Excel 2016
        .SaveAs Filename:=sFullName, FileFormat:=xlCSVUTF8, local:=True
        .Close savechanges:=False
    End With

 End Sub

Bonjour et merci pour vos retours,

Xmenpl j'ai un peu de mal à comprendre ce que tu me proposes ?, la macro de départ ne serait plus utilisé?,

Patrice33740 sur la macro export csv il est indiqué Local:= True mais cela ne fonctionne pas malgré tout, dois je changer des paramètres?,

Jean - Eric, merci pour ce code, cependant il me dit que la méthode SavaAs de l'objet Worbook a échoué et cette ligne est surligné après débogage :

.SaveAs Filename:=sFullName, FileFormat:=xlCSVUTF8, local:=True

Le fichier créer est sous forme excel et ne porte pas le nom année.mois

Merci d'avance pour votre aide,

Cordialement,

Re,

Essaie en utilisant xlCsv au lieu de xlcsvUTF8 !?

Cdlt.

Bonjour et merci pour vos retours,

Xmenpl j'ai un peu de mal à comprendre ce que tu me proposes ?, la macro de départ ne serait plus utilisé?,

Effectivement la Macro 2 est une nouvelle façon de procéder qui ouvrir le fichier bloc note nommé "Nouveau doc.csv"

et vient alimenter les lignes.

Bonjour Jean Eric,

C'est parfait cela fonctionne, cependant peux tu m'expliquer ce que tu as fondamentalement changé pour que ce soit correct?,

Merci Xmempl pour ta précision, je garde ta solution sous le coude, et te remercie d'avoir contribué à mon post !

Pour le cas présent, je conserverai la solution proposée par Jean Eric !

Merci d'avance,

Cordialement,

Re,

Que ne comprends-tu pas , par rapport à ton code ?

Cdlt.

With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rngCSV = .Cells(2, 1).Resize(lastRow - 1, 10)
    End With

    Workbooks.Add (xlWBATWorksheet)
    rngCSV.Copy Destination:=Cells(1)
    With ActiveWorkbook
        .SaveAs Filename:=sFullName, FileFormat:=xlCSV, local:=True
        .Close savechanges:=False
    End With

Bonjour Jean Eric,

Je comprends, enfin j'arrive à traduire ton code, ce qui m'échappe c'est pourquoi le mien ne fonctionnait pas

Cordialement,

Re,

Je comprends, enfin j'arrive à traduire ton code, ce qui m'échappe c'est pourquoi le mien ne fonctionnait pas

Je te rassure, moi aussi je ne comprends pas, d'autant plus qu'il fonctionne parfaitement chez moi.

Je l'aurais écrit de façon différente (je n'utilise par les objets actifs quand je peux l'éviter) mais c'est pas là le problème.

L'as-tu ré-essayé depuis ?

Bonjour Patrice33740,

Oui je l'ai essayé plusieurs fois mais il ne fonctionne pas, le plus important est que ce sujet est résolu même si j'aurai aimer savoir pourquoi ça ne fonctionnais pas !

Merci à tous pour votre aide,

Cordialement,

Rechercher des sujets similaires à "vba csv"