fichier csv (séparateur:virgule)

pitch

XLDnaute Nouveau
bonjour a tous,

j'ai besoin d'enregistrer mes fichiers excel en csv(separateur: virgule)
or je dispose du type de fichier csv(separateur: point-virgule)
est-t'il possible de modifier le séparateur (comment) ? ou faut t'il ajouter un format d'enregistrement (ou le trouver et comment l'insérer) ?

merci
 
C

Compte Supprimé 979

Guest
Re : fichier csv (séparateur:virgule)

Salut Pitch,

C'est tout simplement impossible d'enregistrer en format avec virgule !

Le seul moyen eventuel c'est de créer une moulinette VBA qui met chaque valeur séparée par une virgule dans un fichiser texte.

Il me semble avoir déjà vu ça, mais je ne sais pas ou !
 

Catrice

XLDnaute Barbatruc
Re : fichier csv (séparateur:virgule)

Bruno,
C'est tout simplement possible :)
En tous les cas testé sous Excel 2002.

Modifier le separateur de liste dans le panneau de configuration de Windows virgule au lieu de point-virgule.
Puis enregistrer en CSV => fichier séparé par des virgules


Peut etre des solutions Macro ici : Ce site n'existe plus
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : fichier csv (séparateur:virgule)

Salut Catrice,

Oui comme ça, bien sur, mais ça oblige à toucher aux paramètres system !
Et en général c'est pas trop cool ... :(

La solution de Dixit est intéressante, en VBA je pense que l'on peut ouvrir le fichier comme un fichier texte et remplacer ";" par ","

A+
 

Catrice

XLDnaute Barbatruc
Re : fichier csv (séparateur:virgule)

Bonsoir,

changer les parametres juste le temps de l'enregistrement, ça va ;)
Bonc'est vrai c'est pas top !

Suivant les versions et en l'occurence avec la version XL2002, le code suivant enregistre avec une virgule :
Sub Virgule()
ActiveWorkbook.SaveAs Filename:="Test.csv", FileFormat:=xlCSV, local:=False
End Sub

Et celui-ci avec un point virgule :
Sub PointVirgule()
ActiveWorkbook.SaveAs Filename:="Test.csv", FileFormat:=xlCSV, local:=True
End Sub


Et ci-joint un bout de code qui enregistre avec le séparateur de son choix :p
 

Pièces jointes

  • testRegistry.xls
    25.5 KB · Affichages: 960
C

Compte Supprimé 979

Guest
Re : fichier csv (séparateur:virgule)

Bien vue Catrice,

Mais une macro qui modifie la base de registre Windows, mon Kaspersky, me dit : "Artung une chose anormale tente de se produire" :D

Modifier la base de registre, c'est pas un peu radical ?
Bon je te l'accorde tu la remets dans l'ordre après.

Mais imagine que pour raison X la macro plante juste après avoir exporter le fichier en CSV avec virgule.

L'utilisateur peut chercher longtemps pourquoi il à un point à la place de sa virgule pour le séparateur décimal :p

Sinon une macro toute simple qui existe sur le site de Fédéric SIGONNEAU
Code:
Sub SaveAsCSV()
'steve, mpfe
Dim Range As Object, Line As Object, Cell As Object
Dim StrTemp As String
Dim Separateur As String

    Separateur = ";"

    Set Range = ActiveSheet.UsedRange
    Open "Test.csv" For Output As #1

    For Each Line In Range.Rows
        StrTemp = ""
        For Each Cell In Line.Cells

            StrTemp = StrTemp & CStr _
                (Cell.Text) & Separateur

        Next
        Print #1, StrTemp '= " "
    Next
    Close
End Sub

A tester ;)
 
Dernière modification par un modérateur:

pitch

XLDnaute Nouveau
Re : fichier csv (séparateur:virgule)

bonjour a tous,

le probleme c'est que j'utilise une fonction d'un logiciel permettant de séparer les champs (d'un fichier csv) séparaient par une virgule et tous ça sans soucis de longueur de chaine (par contre avec le séparateur point-virgule, je suis limité a 131 caracteres, c'est le probleme).

de plus il est impératif de garder le fomat excel par souci de clarté et pour une meilleur visualisation dans la modification du fichier.

l'idée de remplacer le séparateur point-virgule en virgule en enregistrant sous format texte est bonne mai je ne pourrai plus utiliser la fonction et l'idée d'avoir 2 fichiers n'est pas idéale pour la mise a jour du fichier.

merci
 

Catrice

XLDnaute Barbatruc
Re : fichier csv (séparateur:virgule)

Pitch,


Je n'ai pas tres bien compris le dernier Fil ...
Quel est le probleme exactement ?

La Macro proposée par Bruno fonctionne tres bien (il faut juste voir pour enlever le séparateur de trop à chaque fin de ligne + retour chariot).
Et j'ai pu passer plus de 400 caracteres.

Sinon, en XL2002 ce code fonctionne :
Sub Virgule()
ActiveWorkbook.SaveAs Filename:="Test.csv", FileFormat:=xlCSV, local:=False
End Sub
 

pitch

XLDnaute Nouveau
Re : fichier csv (séparateur:virgule)

catrice,

normal c'est parce que je parle des limites du logiciel de supervision pour la lecture des chaines de caractères. j'ai pa été tré clair dans mon message precedent, je parle de 2 logiciels à la fois.

je dois juste faire la conversion des separateurs ; en , sous excel, le reste est développé sous un autre logiciel qui fait appel à des fichiers excel.

mai bon ca va j'ai réussi.

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko