Peut on exporter des données Excel vers un fichier .csv
TraderAS
Messages postés
119
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Peut on exporter des données Excel vers un fichier .csv
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Trier des données excel - Guide
- Fichier rar - Guide
17 réponses
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
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
Re,
le moyen le plus sur pour une plage de donnees excel vers ficier csv:
https://www.developpez.net/forums/d1194559/logiciels/microsoft-office/excel/contribuez/export-csv-plage-selectionnee/
le moyen le plus sur pour une plage de donnees excel vers ficier csv:
https://www.developpez.net/forums/d1194559/logiciels/microsoft-office/excel/contribuez/export-csv-plage-selectionnee/
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Apres quelquessssssss essais avec excel uniquement
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+
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+
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
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
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+
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+
Bonjour bg62,
TraderAS demande une macro pour enregistrer une plage de cellule dans un fichier csv en automatique, donc macro.
A+
TraderAS demande une macro pour enregistrer une plage de cellule dans un fichier csv en automatique, donc macro.
A+
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 ;)
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 ;)
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+
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+
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
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
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+
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+
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 ;)
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 ;)