Peut on exporter des données Excel vers un fichier .csv

Fermé
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 - 23 mars 2013 à 09:07
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 25 mars 2013 à 13:05
Bonjour,

j'ai des données sur un fichier Excel que je souhaite exporter (automatiquement-via une macro) vers des fichiers .csv
je n'ai pas pu trouver une solution

merci
A voir également:

17 réponses

TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
23 mars 2013 à 14:36
Salut f894009

j'ai un tableau sur excel et je veux faire un copier de chaque ligne et le coller dans un fichier .csv qui lui correspond

le problème c que j'ai fai une macro mais ca n'a pas marché

Trader
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 mars 2013 à 16:36
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
23 mars 2013 à 22:36
Re
merci pour le lien mais en faite ce code correspond à transformer les séparateurs "," en ";" or mon problème consiste à copier une ligne (à partir d'un fichier .xlsm) et la coller dans un fichier .csv avec comme séparateurs bien sur ";"

le problème c pas dans le faite que j'obtiens des séparateurs "," mais qu'il m'endommage la dernière colonne genre tous les chiffre comme 785413 il les transforment en 78,,,,,

en faite j'ai crée ce code mais le fichier :

Sub Macro3()

Application.ScreenUpdating = False
Rep = "C:\Users\toshiba\Desktop\Others\"
FichD = ActiveWorkbook.Name
FichTest = "TestExcel.csv"


Workbooks.OpenText Filename:="C:\Users\toshiba\Desktop\Others\TestExcel.csv", StartRow:=1, _
DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter _
:=False, Semicolon:=True, DecimalSeparator:="."

Workbooks.Open Rep & FichTest
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

With Workbooks(FichD)
.Sheets("TestExcel").Range("A1:F1").Copy
Workbooks(FichTest).Sheets("TestExcel").Range("A1:G1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:F1").Select
Selection.Copy
Range("A1:F1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:F2").Select
Application.CutCopyMode = False
Selection.Copy
Range("A1:F1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Save
ActiveWindow.Close

End With
End Sub
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 mars 2013 à 07:40
Bonjour,

merci pour le lien mais en faite ce code correspond à transformer les séparateurs "," en ";" Non, il permet de creer un fichier format csv separateur ;. Il se peut que vous ne connaissiez pas la base des creations de fichier .txt ou .dat ou .csv en programmation pure.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
24 mars 2013 à 08:50
oui je suis entrain d'apprendre, mais est ce qu'il y'a une solution à ce problème ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 mars 2013 à 09:42
Re,

Apres quelquessssssss essais avec excel uniquement

Sub Macro5()
    Application.DisplayAlerts = False
    Workbooks.Open Filename:="D:\_cles\TestExcel.csv", local:=True
    Windows("test.xlsm").Activate
    Range("A1:F5").Select
    Selection.Copy
    Windows("TestExcel.csv").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub


ouvre fichier csv comme un fichier xls(x) (local:=true)
copie/coller des cellules
sauve et ferme csv, fichier xlsm
ferme xlsm

Petits details: si vous ouvrez le csv, les donnees sont dans une cellule par ligne, separees par une virgule---->c'est tout a fait normal. En effet, pour une raison qui lui appartient, excel fait une difference entre un fichier xls(x) enregistre manuellement en csv et la meme chose avec une macro, mais ceci n'est qu'un affichage. Comme je ne sais pas ce que vous voulez faire de ce fichier csv, est-ce important l'affichage avec une donnee par cellule??????

A+
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
24 mars 2013 à 10:19
re

je vais simplifier le problème

mon problème consiste a faire un copier coller d'un fichier excel vers un fichier .csv
je veux copier un tableau qui existe dans le fichier Daily-backup.xlsm et le coller dans un fichier qui s'appelle Test.csv

pour être plus clair et plus précis voici les liens aux deux docuements:

j'ai intégré votre macro avec des modifications pour être plus rapide

le fichier test.csv :https://www.cjoint.com/c/CCykeMG4sGO
le fichier source.xlsm: https://www.cjoint.com/c/CCykp4fg9D1 (la macro qui correspond d'appelle copiercoller Test, juste il faut modifier la path du fichier)

vous pouvez tester directement
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 mars 2013 à 10:48
Re,

fichier xlsm et csv

https://www.cjoint.com/c/CCykUSx0bkB

vous n'avez pas repondu a la question:

Comme je ne sais pas ce que vous voulez faire de ce fichier csv, est-ce important l'affichage avec une donnee par cellule??????

A+
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
24 mars 2013 à 11:44
pourquoi une 'macro' .... ???
il suffit de Sélectionner l'option lors de l'enregistrement , non ;)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 mars 2013 à 11:48
Bonjour bg62,

TraderAS demande une macro pour enregistrer une plage de cellule dans un fichier csv en automatique, donc macro.

A+
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
24 mars 2013 à 21:13
Salut f894009

oui c'est trés important le séparateur ";" car il y'a une application qui va saisir les données sous forme de fichiers .csv avec séparateurs ";" et donc je dois avoir ce genre de séparateur ;)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
25 mars 2013 à 08:40
Bonjour,

Methode a l'ancienne,mais 100% fiable

Sub ExportCSV()

Dim LigneCSV As String
Dim PlageCSV As Range
Dim Ligne As Integer, Colonne As Integer, Nb_Ligne As Integer, Nb_Colonne As Integer


'Fermeture ficher si ouvert
Close

'Plage CSV
Set PlageCSV = Worksheets("test").Range("A1:F5")

'Ouverture du fichier de sortie
Open "D:\_cles\testexcel.csv" For Output As #1

'Butees de comptage
Nb_Ligne = PlageCSV.Rows.Count
Nb_Colonne = PlageCSV.Columns.Count

'Boucle sur la plage et ajoute les lignes au fichier
For Ligne = 1 To Nb_Ligne
For Colonne = 1 To Nb_Colonne
If LigneCSV <> "" Then
LigneCSV = LigneCSV & ";"
End If
'construction ligne
LigneCSV = LigneCSV & PlageCSV.Cells(Ligne, Colonne).Value
Next Colonne
'Enregistrement ligne
Print #1, LigneCSV
LigneCSV = ""
Next Ligne

'Fermeture du fichier
Close #1

End Sub


A+
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
25 mars 2013 à 09:06
Bonjour f894009 et merci pour votre précieuse aide

en faite j'ai appliqué votre dernier code mais je trouve un problème au niveau de la ligne Nb_Ligne = PlageCSV.Rows.Count qui s'affiche en jaune .

mais bon puisque j'ai posé cette question sur plusieurs tutorials, voici une nouvelle idée, car je crois que le problème est d'envergure

voici la nouvelle proposition et voire si vous pouvez m'aider:

je dois avoir une fonctionnalité qui me permet d'écraser les fichiers (.csv) anciens (j-1) qui existent dans un même dossier et transformer chaque chaque fichier (presque 50) fichier .xls en fichier .csv avec séparateur ";", ceci à travers une macro qui contient tout ca, c'est possible ?

Trader
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
25 mars 2013 à 10:53
Re,

Nb_Ligne = PlageCSV.Rows.Count qui s'affiche en jaune . Pas chez moi!!

en faite j'ai appliqué votre dernier code mais je trouve un problème recopie en entier (avec adaptation des noms), partiellement! ???????


je dois avoir une fonctionnalité qui me permet d'écraser les fichiers (.csv) anciens (j-1) qui existent dans un même dossier et transformer chaque chaque fichier (presque 50) fichier .xls en fichier .csv avec séparateur ";", ceci à travers une macro qui contient tout ca, c'est possible ? Comprends pas tout !!!

A+
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
25 mars 2013 à 12:23
Re

d'après ce que j'ai lu le problème de copier coller une nouvelle ligne d'un fichier excel dans un fichier csv est trés compliquée, car d'après ce que j'ai lu sur un autre forum, un fichiers .txt et .csv correspond à une feuille entière ET unique.

donc je me suis dis pourquoi pas aller dans une autre logique, c'est à dire aller insérer les lignes dans des fichiers distincts .xls puis les modifier en csv

une autre façon de voire les choses ;)

Trader ;)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
25 mars 2013 à 13:05
Re,

Oui, cela peut se faire, avant de vous donner le code a l'ancienne, j'avais regarde dans cette voie.

A+
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 mars 2013 à 09:34
bonjour,

export onglet, plage de cellules ou .......
-1