CSV délimitation ";" ou ","

Le
fred
bonjour,

je souhaite enregistrer un fichier excel en format CSV séparation virgule.
Le problème est que dans enregistrer sous je n'ai que la possibilité
d'enregistrer en CSV séparation point virgule.

Merci pour votre aide
Fréd
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P
Le #9778801
Bonsoir Denis
Je m'excuse quelque peu pour mon intervention dans cette proposition, mais
ne serait il pas possible d'effectuer plus volontiers un ".Replace ";" ,
","" ?
"MichDenis"
'-----------------------------------
Sub EnregistrerFormatSpecial()

Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer

With ThisWorkbook.Worksheets("Feuil2") ' à déterminer
R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
Set Plage = .Range(.Range("A1"), .Cells(R, C))
End With

Séparateur = "wxc" ' à déterminer
NomFichierSauvegarde = "C:Denis.csv" ' à déterminer

SaveAsCSV Plage, Séparateur, NomFichierSauvegarde

End Sub
'-----------------------------------
Sub SaveAsCSV(Plage As Range, Séparateur As String, _
NomFichierSauvegarde As String)

Dim Temp As String, R As Range, C As Range

Open NomFichierSauvegarde For Output As #1
For Each R In Plage.Rows
Temp = ""
For Each C In R.Cells
Temp = Temp & C & Séparateur
Next
Temp = Left(Temp, Len(Temp) - 3)
Print #1, Temp
Next
Close
Set Plage = Nothing: Set C = Nothing: Set R = Nothing
End Sub
'-----------------------------------





"fred"
bonjour,

je souhaite enregistrer un fichier excel en format CSV séparation virgule.
Le problème est que dans enregistrer sous je n'ai que la possibilité
d'enregistrer en CSV séparation point virgule.

Merci pour votre aide
Fréd


Fredo P
Le #10851521
>
J'attends ta procédure qui va battre ça ! À ton tour Fred de faire un
petit effort....



Que nenni!, c'est hors de mes compétances
Ma proposition n'était qu'une simple suggestion sans en connaitre
l'aboutissant d'aucune des solutions et par pure simplification du code si
cela avait été possible.
'------------------------------------
Sub EnregistrerFormatSpecial()

Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer
x = Timer
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:Denis.csv" ' à déterminer
SaveAsCSV Plg, Séparateur, NomFichierSauvegarde
MsgBox Timer - x
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
'------------------------------------




Fredo P.
Le #10856941
Bonsoir Denis
Peut on connaître, si cela n'est pas secret, sur quelle bible t'appuis tu le
plus souvent pour transmettre ce savoir ?

"MichDenis" news:
Si tu as une version Excel 2002 ou plus récente, ceci serait suffisant :

Et c'est sûrement la façon la plus rapide de faire !
'---------------------------------------
Sub test()
'Adresse et nom du fichier à sauvegarder
NomFichierSauvegarde = "C:Denis.csv"
With Feuil1
'Copie la feuille vers un autre classeur
.Copy
With ActiveWorkbook
'Enregistre le nouveau classeur possédant
'une feuille sous le format CSV
'Le paramètre Local de la méthode SaveAs
'existe depuis la version Excel 2002
.SaveAs FileName:=NomFichierSauvegarde, FileFormat:=xlCSV,


Local:=True
'Ferme le classeur
.Close False
End With
End With

End Sub
'---------------------------------------


Il aurait été possible de le faire aussi de façon à se donner le temps de


prendre son
café avec

'-------------------------------------
Sub EnregistrerFormatSpecial2()

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim FS As Object, F As Object, Texte As String
Dim Stm As Object, NomFichierSauvegarde As String
Dim x As Double
x = Timer

'Adresse et nom du fichier à sauvegarder
NomFichierSauvegarde = "C:Denis.csv"
With Feuil1
'Copie la feuille vers un autre classeur
.Copy
With ActiveWorkbook
'Enregistre le nouveau classeur possédant
'une feuille sous le format CSV
.SaveAs NomFichierSauvegarde, xlCSV
'Ferme le classeur
.Close False
End With
End With

'création de L'objet Scripting.FileSystemObject
Set FS = CreateObject("Scripting.FileSystemObject")
'Accèder au contenu du nouveau fichier
Set Stm = FS.GetFile(NomFichierSauvegarde).OpenAsTextStream(ForReading)
'Place tout le contenu du fichier dans la variable texte
Texte = Stm.ReadAll
'Fait la substitution demandée
Texte = Replace(Texte, ",", ";")
'Accéder au fichier en écriture
Set F = FS.OpenTextFile(NomFichierSauvegarde, ForWriting, True)
'écrire le contenu "Texte" dans le fichier
F.Write Texte
'Fermeture du fichier
F.Close
'Libérer l'espace mémoire occupé par les objets.
Set F = Nothing: Set Stm = Nothing: Set FS = Nothing
MsgBox Timer - x
End Sub
'-------------------------------------



Modeste
Le #10857531
Bonsour® Fredo P. avec ferveur ;o))) vous nous disiez :

Bonsoir Denis
Peut on connaître, si cela n'est pas secret, sur quelle bible
t'appuis tu le plus souvent pour transmettre ce savoir ?



;o)))
RTFM
ou
MPFEIYF
;o)))

--
@+
;o)))
Fredo P
Le #10857551
"Modeste" %
Bonsour® Fredo P. avec ferveur ;o))) vous nous disiez :

Bonsoir Denis
Peut on connaître, si cela n'est pas secret, sur quelle bible
t'appuis tu le plus souvent pour transmettre ce savoir ?



;o)))
RTFM 'Mais encore, Radio Tél Fréquence Modeste
ou
MPFEIYF et La?
;o)))
On dit que les plus courtes sont les meilleurs, mais encore faut il les
assimiler
--
@+
;o)))
Modeste
Le #10857581
Bonsour® Fredo P avec ferveur ;o))) vous nous disiez :

;o)))
RTFM 'Mais encore, Radio Tél Fréquence Modeste
ou
MPFEIYF et La?
;o)))
On dit que les plus courtes sont les meilleurs, mais encore faut il
les assimiler



;o)))
c'était une façon de dire que l'aide en ligne est trés riche(*) !!!
"Read The Friendly Manual" (google RTFM)

et que MPFE Is Your Friend ...
;o)))

(*) c'est hélas aucunement un manuel d'apprentissage :-((



--
--
@+
;o)))
Mgr T. Banni
Le #10858251
...et aussi sur celle des Mgrs, Pères et autres saints hommes qui hantent ce
forum
jps

"Modeste" %
Bonsour® Fredo P. avec ferveur ;o))) vous nous disiez :

Bonsoir Denis
Peut on connaître, si cela n'est pas secret, sur quelle bible
t'appuis tu le plus souvent pour transmettre ce savoir ?



;o)))
RTFM
ou
MPFEIYF
;o)))

--
@+
;o)))
Publicité
Poster une réponse
Anonyme