Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Code VBS - convertir xlsx vers csv


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Code VBS - convertir xlsx vers csv
    Bonjour,

    Tout nouveau en VBS, je cherche un script pour convertir un fichier excel "fichier.xlsx" en "fichier.csv", en sachant que les 2 fichiers seront dans le même dossier que le *.vbs.
    La conversion doit se faire automatiquement au lancement du script sans actions à effectuer ou texte affiché.
    J'ai bien cherché de partout mais je n'ai rien trouvé.

    Merci d'avance.

    Bonne journée.

  2. #2
    Modérateur

    Bonjour et BIENVENU sur DVP

    Les chemins des fichiers sont à adapter selon le besoin dans l'appel de la Sub WriteToCsvFile
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
     
    Dim  XL, WB, X, ColsCount, iRow, tmpText, Delim, RowsCount, CSV
     
    WriteToCsvFile "C:\Temp\Test.xlsx", "C:\Temp\Result.csv"
    '===========================
    Sub WriteToCsvFile(xlsxFile, csvFile)
        Delim = ";"
        Set XL = CreateObject("Excel.Application")
        XL.Visible = False
        XL.DisplayAlerts = False
        Set WB = XL.Workbooks.Open(xlsxFile)
        RowsCount = WB.Activesheet.UsedRange.Rows.count
        ColsCount = WB.Activesheet.UsedRange.Columns.count
        iRow = 1
        Set CSV = XL.Workbooks.Add()
        Do Until iRow > RowsCount
            tmpText = ""
            For X = 1 To  ColsCount - 1
                tmpText = tmpText & WB.Sheets(1).Cells(iRow, X).Value & Delim
            Next
            tmpText = tmpText & WB.Sheets(1).Cells(iRow, ColsCount).Value
            CSV.Sheets(1).Cells(iRow,1).Value = tmpText
            iRow = iRow + 1
        Loop
        CSV.SaveAs csvFile
        XL.Quit
        Set XL = Nothing
    End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre éprouvé
    Bonsoir

    J'ai un code tout fait si cela te tente : https://github.com/cavo789/vbs_xls2scv

    Bonne soirée
    Christophe (cavo789)
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan
    Mes logiciels OpenSource : https://www.avonture.be