j' ai créé un classeur excel ne contenant qu'une seule feuille.
j'ai rempli cette feuille, elle contient 4 colonnes
dans une de ces colonne j'ai un texte qui peut contenir des " (exemple :
mon texte avec des "guillemets")
jusque là tout est ok sauf que lors de l'export je me retrouve avec les
guillemets en double
avant : mon texte avec des "guillemets" (*.xlsx)
après : mon texte avec des ""guillemets"" (*.csv)
est ce qu'il y a un moyen pour qu'il m'exporte les données comme elles
sont sans transformation ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Tu peux utiliser ceci en prenant soin de définir les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------ Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String Dim NomFichierSauvegarde As String Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count Plg = .Range(.Range("A1"), .Cells(R, C)) End With
Séparateur = ";" ' à déterminer NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------ Sub SaveAsCSV(Plg As Variant, Séparateur As String, _ NomFichierSauvegarde As String)
Dim Temp As String Close #1 Open NomFichierSauvegarde For Output As #1 For a = 1 To UBound(Plg, 1) Temp = "" For b = 1 To UBound(Plg, 2) Temp = Temp & Plg(a, b) & Séparateur Next Temp = Left(Temp, Len(Temp) - Len(Séparateur)) Print #1, Temp Next Close End Sub '------------------------------------
"JeAn-PhI" a écrit dans le message de groupe de discussion :
bonjour
j' ai créé un classeur excel ne contenant qu'une seule feuille. j'ai rempli cette feuille, elle contient 4 colonnes dans une de ces colonne j'ai un texte qui peut contenir des " (exemple : mon texte avec des "guillemets") jusque là tout est ok sauf que lors de l'export je me retrouve avec les guillemets en double avant : mon texte avec des "guillemets" (*.xlsx) après : mon texte avec des ""guillemets"" (*.csv)
est ce qu'il y a un moyen pour qu'il m'exporte les données comme elles sont sans transformation ?
-- Cordialement JeAn-PhI
Bonjour,
Tu peux utiliser ceci en prenant soin de définir
les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------
Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer
R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count
Plg = .Range(.Range("A1"), .Cells(R, C))
End With
Séparateur = ";" ' à déterminer
NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer
SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------
Sub SaveAsCSV(Plg As Variant, Séparateur As String, _
NomFichierSauvegarde As String)
Dim Temp As String
Close #1
Open NomFichierSauvegarde For Output As #1
For a = 1 To UBound(Plg, 1)
Temp = ""
For b = 1 To UBound(Plg, 2)
Temp = Temp & Plg(a, b) & Séparateur
Next
Temp = Left(Temp, Len(Temp) - Len(Séparateur))
Print #1, Temp
Next
Close
End Sub
'------------------------------------
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de groupe de discussion :
ejLzqWHkKHA.2184@TK2MSFTNGP04.phx.gbl...
bonjour
j' ai créé un classeur excel ne contenant qu'une seule feuille.
j'ai rempli cette feuille, elle contient 4 colonnes
dans une de ces colonne j'ai un texte qui peut contenir des " (exemple :
mon texte avec des "guillemets")
jusque là tout est ok sauf que lors de l'export je me retrouve avec les
guillemets en double
avant : mon texte avec des "guillemets" (*.xlsx)
après : mon texte avec des ""guillemets"" (*.csv)
est ce qu'il y a un moyen pour qu'il m'exporte les données comme elles
sont sans transformation ?
Tu peux utiliser ceci en prenant soin de définir les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------ Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String Dim NomFichierSauvegarde As String Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count Plg = .Range(.Range("A1"), .Cells(R, C)) End With
Séparateur = ";" ' à déterminer NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------ Sub SaveAsCSV(Plg As Variant, Séparateur As String, _ NomFichierSauvegarde As String)
Dim Temp As String Close #1 Open NomFichierSauvegarde For Output As #1 For a = 1 To UBound(Plg, 1) Temp = "" For b = 1 To UBound(Plg, 2) Temp = Temp & Plg(a, b) & Séparateur Next Temp = Left(Temp, Len(Temp) - Len(Séparateur)) Print #1, Temp Next Close End Sub '------------------------------------
"JeAn-PhI" a écrit dans le message de groupe de discussion :
bonjour
j' ai créé un classeur excel ne contenant qu'une seule feuille. j'ai rempli cette feuille, elle contient 4 colonnes dans une de ces colonne j'ai un texte qui peut contenir des " (exemple : mon texte avec des "guillemets") jusque là tout est ok sauf que lors de l'export je me retrouve avec les guillemets en double avant : mon texte avec des "guillemets" (*.xlsx) après : mon texte avec des ""guillemets"" (*.csv)
est ce qu'il y a un moyen pour qu'il m'exporte les données comme elles sont sans transformation ?
-- Cordialement JeAn-PhI
JeAn-PhI
Dans son message précédent, michdenis a écrit :
Bonjour,
Tu peux utiliser ceci en prenant soin de définir les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------ Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String Dim NomFichierSauvegarde As String Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count Plg = .Range(.Range("A1"), .Cells(R, C)) End With
Séparateur = ";" ' à déterminer NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------ Sub SaveAsCSV(Plg As Variant, Séparateur As String, _ NomFichierSauvegarde As String)
Dim Temp As String Close #1 Open NomFichierSauvegarde For Output As #1 For a = 1 To UBound(Plg, 1) Temp = "" For b = 1 To UBound(Plg, 2) Temp = Temp & Plg(a, b) & Séparateur Next Temp = Left(Temp, Len(Temp) - Len(Séparateur)) Print #1, Temp Next Close End Sub '------------------------------------
merci cela fonctionne correctement pour mon besoin
-- Cordialement JeAn-PhI
Dans son message précédent, michdenis a écrit :
Bonjour,
Tu peux utiliser ceci en prenant soin de définir
les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------
Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer
R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count
Plg = .Range(.Range("A1"), .Cells(R, C))
End With
Séparateur = ";" ' à déterminer
NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer
SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------
Sub SaveAsCSV(Plg As Variant, Séparateur As String, _
NomFichierSauvegarde As String)
Dim Temp As String
Close #1
Open NomFichierSauvegarde For Output As #1
For a = 1 To UBound(Plg, 1)
Temp = ""
For b = 1 To UBound(Plg, 2)
Temp = Temp & Plg(a, b) & Séparateur
Next
Temp = Left(Temp, Len(Temp) - Len(Séparateur))
Print #1, Temp
Next
Close
End Sub
'------------------------------------
merci cela fonctionne correctement pour mon besoin
Tu peux utiliser ceci en prenant soin de définir les variables selon ton application.
Tu colles ce qui suit dans un module standard de ton classeur:
'------------------------------------ Sub EnregistrerFormatSpecial()
Dim Plage As Range, Séparateur As String Dim NomFichierSauvegarde As String Dim R As Long, C As Integer
With ThisWorkbook.Worksheets("Feuil1") ' à déterminer R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column Range("A1") = .Range(.Range("A1"), .Cells(R, C)).Cells.Count Plg = .Range(.Range("A1"), .Cells(R, C)) End With
Séparateur = ";" ' à déterminer NomFichierSauvegarde = "C:Denis100.csv" ' à déterminer SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
End Sub
'------------------------------------ Sub SaveAsCSV(Plg As Variant, Séparateur As String, _ NomFichierSauvegarde As String)
Dim Temp As String Close #1 Open NomFichierSauvegarde For Output As #1 For a = 1 To UBound(Plg, 1) Temp = "" For b = 1 To UBound(Plg, 2) Temp = Temp & Plg(a, b) & Séparateur Next Temp = Left(Temp, Len(Temp) - Len(Séparateur)) Print #1, Temp Next Close End Sub '------------------------------------
merci cela fonctionne correctement pour mon besoin