Macro : Convertir vers un csv

Bonjour ,

Je voudrais construire une macro qui a partir d'un plage de 20 colonnes ,transforme toute les données et crée un fichier csv qui s'enregistre sur le bureau.

Je me doute qu'en enregistrant la macro lorsque qu'on enregistre sous format csv , cela se crée.

Mais le problème est que je souhaiterai prendre qu'une quantité de colonne choisi et que ma macro n'affiche que les lignes où il y a au moins une donné.

Voici un exemple de fichier excel ou je voudrai récupérer les données jusqu'à la colonne S et qu'un fichier csv soit creer.

7test.xlsx (9.27 Ko)

Merci de votre aide

Bonjour Paris, bonjour le forum,

Pas très clair tout cas !...

Bonjour ,

Je voudrais construire une macro qui a partir d'un plage de 20 colonnes...

Voici un exemple de fichier excel ou je voudrai récupérer les données jusqu'à la colonne S...

De la colonne A à la colonne S ça ne fait que 19 colonnes !?...

Ta macro va toujours être sur les mêmes colonnes ou doit-elle définir la colonne de départ et celle d'arrivée avant de continuer ?

Bonjour à vous,

Désole si ce n'est pas clair, j'ai essayer de faire de mon mieux pour vous expliquer.

Effectivement c'est jusqu'a la colonne T et sera toujours sur les colonnes de A à T.

Mon but justement est que la macro prenne les données dans les colonnes A à T e les enregistre dans un fichier CSV . Mais dans ce fichier CSV , je veux qu'il y ai les lignes où il y a au moins un donnée.

Bonsoir Paris, bonsoir le forum,

Essaie comme ça :

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim NP As Byte 'déclare la variable NP (Nombre de Points)
Dim NC As String 'déclare la variable NC (Nom du Classeur)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeur)

Set CS = ThisWorkbook 'définit le classeur source CS
CA = CS.Path & "\" 'définit le chemin d'accès CA
NP = UBound(Split(CS.Name, ".")) 'définit le nombre de points (.) NP qu'il y a dans le nom du classeur source (normalement un seul)
NC = Split(CS.Name, ".")(NP - 1) ''définit le nom du classeur NC sans l'extension
Set OS = Worksheets("Copier") 'définit l'onglet source OS (à adapter éventuellement)
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = UBound(TV, 1) To 2 Step -1 'boucle inversée de la dernière ligne du tableau des valeurs à la ligne 2
    'si le nombre de valeurs dans les 20 premières colonnes de la ligne est égal à 0, supprime la ligne
    If Application.WorksheetFunction.CountA(OS.Cells(I, "A").Resize(1, 20)) = 0 Then OS.Rows(I).Delete
Next I 'procaine ligne de la boucle
CS.SaveAs CA & NC, FileFormat:=6 'enregistre le fichier au format CSV dans le même dossier et avec le même nom que le classeur source
ActiveWorkbook.Close False 'ferme le fichier CSV
End Sub

Le fichier CSV se trouve dans le même dossier que le fichier original et porte le même nom...

Merci pour aide mais lorsque je l'execute cela me dit

"impossible d'acceder au document en lecture seule" pourtant j'ai vérifer mon fichier n'est pas en lecture seule.

Et lorsque je clique sur deboguer c'est a cette ligne

CS.SaveAs CA & NC, FileFormat:=6 'enregistre le fichier au format CSV dans le même dossier et avec le même nom que le classeur source

Re,

Chez moi, avec ton fichier test.xlsx que j'ai converti en test.xlsm à cause de la macro ça marche... Tu l'as mise dans quel fichier la macro ?

56test.xlsm (17.65 Ko)

Merci pour ton aide, c'est mon ordi qui avais un problème car sur un autre ordi cela marche très bien.

Juste une question, est ce que c'est normal que lorsque le fichier csv est créé , le fichier excel n'affiche plus rien ?

Merci,

Re,

Oui car je le ferme aussitôt créé car sinon le fichier CSV ne s'affiche pas correctement. Si cela te pose un problème, supprime la dernière ligne du code avant le End Sub ou met la en commentaire en tapant une apostrophe au début :

'ActiveWorkbook.Close False 'ferme le fichier CSV

Merci beaucoup de votre aide

Rechercher des sujets similaires à "macro convertir csv"