Exporter fichier CSV

Bonjour

Je développe un module Vba pour exporter un fichier CSV qui sera ensuite intégrer dans un agenda google. J'en suis à tester les grandes lignes.

J'ai créé un tableau excel que je tente d'exporter en CSV. Normalement il suffit de faire : fichier, enregistrer sous et sélectionner :

"CSV UTF-8 (délimité par des virgules) (*.CSV)". Simple. Sauf que ça ne fonctionne pas.

Je vous joints mon fichier de test. L' entête est celui imposé par google. Ensuite j'ai créé deux lignes pour test.

à ce stade, est ce que mon tableau est mal construit ? Est ce que ma façon de procéder n'est pas bonne ?

sur le papier, tout semble simple.

Merci pour vos conseils

Jacques

15testannonce01.xlsx (10.05 Ko)

Hello,

J'avais déjà traité un cas d'import vers google agenda, j'ai juste rajouté un truc pour tes formats d'heure au cas où.

PS : la gestion avec le flux n'est pas de moi

Sub ExporterAgendaCSV()
    Dim ws As Worksheet
    Dim cheminExport As String
    Dim flux As Object
    Dim ligne As String
    Dim r As Long, c As Long
    Dim nbColonnes As Long

    'variables
    Set ws = ThisWorkbook.Sheets("TestAnnonce01")
    nbColonnes = 9
    cheminExport = ThisWorkbook.Path & "\agenda_google.csv"

    Set flux = CreateObject("ADODB.Stream")
    With flux
        .Charset = "utf-8"
        .Open

    'boucle sur les lignes pour nettoyer le texte, ton format des heures n'est pas bon pour l'intégration dans google agenda
        For r = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            ligne = ""
            For c = 1 To nbColonnes
                ligne = ligne & """" & NettoyerTexte(ws.Cells(r, c).Text) & """"
                If c < nbColonnes Then ligne = ligne & ","
            Next c
            .WriteText ligne & vbCrLf
        Next r

    'save, le 2 écrase si déjà existant
        .SaveToFile cheminExport, 2
        .Close
    End With

    MsgBox "Fichier exporté : " & cheminExport, vbInformation
End Sub

'Fonction pour te nettoyer les les heures et problèmes potentiels
Function NettoyerTexte(texte As String) As String
    texte = Replace(texte, "h", ":")
    texte = Replace(texte, """", "")
    NettoyerTexte = texte
End Function

@+

Cette réponse m'apporte bien plus que je n'en attendais.

Je vais prendre le temps de mettre en oeuvre et tester.

Je ferai un message après pour donner le résultat obtenu

Mais là, il fait beau, et je dois tondre les pelouses. (un retraité est toujours "débordé")

En attendant merci pour ces lignes de programme

bonne journée

jacques

En pièces jointes, le résultat.

J'ai adapté votre code à ma problématique.

ça fonctionne nickel.

Merci pour votre aide.

Bonne soirée

Jacques

Hello, merci pour le retour ! :)

Rechercher des sujets similaires à "exporter fichier csv"