Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1058 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  saveas csv et ; pour séparateur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

saveas csv et ; pour séparateur ?

n°2061622
Boulou
Wingfoil
Posté le 07-03-2011 à 13:26:12  profilanswer
 

Bonjour,
 
Je cherche à enregistrer mon fichier en format csv séparé par des point virgule (semicolon) ;
or il me sauvegarde avec la virgule , en tant que séparateur ... :(
.SaveAs Filename:=chemindestination & "toto.csv", FileFormat:=xlCSV, Local:=True
 
J'ai vu sur le net qu'en utilisant Local:=True il devrait utiliser mes paramètres régionaux (je suis en francais et le ; est bien défini comme séparateur de liste).
Or il persiste à me sauvegarder ca avec la virgule en séparateur... :(
 
help !

mood
Publicité
Posté le 07-03-2011 à 13:26:12  profilanswer
 

n°2061717
kiki29
Posté le 07-03-2011 à 20:33:42  profilanswer
 

Salut,l'ultime solution ( peut-être ...)
Extrait de l'aide sur SaveAs
Local  Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
 


Option Explicit
 
Sub Tst2()
Dim Tableau, ligne As String, i As Long, j As Long, NumFichier As Integer
Const sSep As String = ";"
     
    NumFichier = FreeFile
    Tableau = ThisWorkbook.Worksheets(1).UsedRange
    Open ThisWorkbook.Path & "\" & "essai.csv" For Output As #NumFichier
    For i = LBound(Tableau, 1) To UBound(Tableau, 1)
        ligne = Tableau(i, LBound(Tableau, 2))
        For j = LBound(Tableau, 2) + 1 To UBound(Tableau, 2)
            ligne = ligne & sSep & Tableau(i, j)
        Next j
        Print #NumFichier, ligne
    Next i
    Close NumFichier
End Sub

Message cité 1 fois
Message édité par kiki29 le 09-03-2011 à 05:50:25
n°2061778
Boulou
Wingfoil
Posté le 08-03-2011 à 08:34:49  profilanswer
 

kiki29 a écrit :

Salut,l'ultime solution ( peut-être ...)
Extrait de l'aide sur SaveAs
Local  Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
 



Option Explicit
 
Sub Tst2()
Dim Tableau, ligne As String, i As Long, j As Long, NumFichier As Integer
Const sSep As String = ";"
     
    NumFichier = FreeFile
    Tableau = ThisWorkbook.Worksheets(1).UsedRange
    Open ThisWorkbook.Path & "" & "essai.csv" For Output As #NumFichier
    For i = LBound(Tableau, 1) To UBound(Tableau, 1)
        ligne = Tableau(i, LBound(Tableau, 2))
        For j = LBound(Tableau, 2) + 1 To UBound(Tableau, 2)
            ligne = ligne & sSep & Tableau(i, j)
        Next j
        Print #NumFichier, ligne
    Next i
    Close NumFichier
End Sub

Effectivement le faire à la mano reste la denière solution ! :jap:

n°2062291
Boulou
Wingfoil
Posté le 10-03-2011 à 14:45:06  profilanswer
 

Ca y est je l'ai implémenté, ca marche bien sauf pour les champs date :(
en effet dans l'excel j'ai des champs de type HH:mm:ss
quand ils sont écrit dans le fichier j'ai 0,228819444444444 au lieu de 05:29:30, comment lui dire de respecter le format de ces champs ??

n°2062318
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:02:32  profilanswer
 

Pour ma part un  
Local:=True  
Fonctionne sans souci pour avoir le ;
 
Il ne faut juste pas faire derriere l'enregistrement du fichier en CSV un :
ActiveWorkbook.Close savechanges:=True
Parce que la, forcement, il remet une "," à la place...
 
 
Jette un oeil ici aussi : http://www.excelabo.net/trucs/csv
Plutot que de passer par des fichier texte ou justement les formats deviennent vites tres chiants...


Message édité par SuppotDeSaTante le 10-03-2011 à 16:03:29

---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  saveas csv et ; pour séparateur ?

 

Sujets relatifs
[FORTRAN] - lire csv séparateur "," ou "."Détection d'un séparateur de colonne quelconque (VBA Excel)
Tableau avec separateurSeparateur requete SQL
Concaténer plusieurs variables dans une seule avec séparateur?Probème : "workbook saveas" error excel version -- Object COM ?
Caractère séparateur sous excel VBAEnregistrer fichier avec separateur virgule
Quel séparateur est le meilleur pour séparer des valeurs ?Regex et séparateur de champs
Plus de sujets relatifs à : saveas csv et ; pour séparateur ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR