Sauvegardes en .CSV

rjcb

XLDnaute Occasionnel
Bonjour a tous!

La je rencontre un vrai pb.
Je sauvegarde des fichier en CSV fileFilter:="CSV (séparateur: point-virgule) via une macro:

Sub Backup()
Dim Filename As String
Dim nomfic As String
Dim occ1 As Integer
Dim longueur As Integer
ChDrive "F:"

Filename = Application.GetSaveAsFilename("", fileFilter:="CSV (séparateur: point-virgule) (*.csv), *.csv")

If Filename <> "Faux" Then
Sheets("Feuil1").Copy
ActiveWorkbook.SaveAs Filename, FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

'Détermine le nom du fichier
occ1 = InStrRev(Filename, "\")
longueur = Len(Filename) - occ1
nomfic = Right$(Filename, longueur)
MsgBox ("Le fichier créée se nomme: " & nomfic & Chr(13))

'Affichage du fichier pour l'envoi par mail
Feuil2.Range("D2").Select
'Range("D3").Select
ActiveCell.FormulaR1C1 = nomfic


End If

End Sub

Le pb, c'es lorque je réouvre ce fichier toutes les données sont séparées par des virgules, normal vu que c'est en .csv mais par contre quand je fais la meme chose sans macro, en enregistrant bien en CSV (séparateur: point-virgule , lorsque je réouvre mon fichier chaque donnée est bien dans chaque cellule, et c'est ce que je voudrais.
Sinon, normal, si je l'ouvre avec notepad, j'ai bien les ","

Merci
 

aperez

XLDnaute Nouveau
Re : Sauvegardes en .CSV

Salut a toi rjcb,

Je ne sais pas si je serais le seul dans ce cas, mais je dois t'avouer que je n'ai pas réellement compris ce que tu cherche a obtenir comme résultat... Désolé jsui comme la météo sur la plupart de la france ojourdui : embrumé !
Si j'ai bien compris tu aimerai obtenir le mm resultat avec ta macro que sans ta macro en enregistrant en .csv ??!

A te lire,

Aperez
 

rjcb

XLDnaute Occasionnel
Re : Sauvegardes en .CSV

Salut!

En fait je crois que c'est moi qui m'exprime pas bien ;)

Bon pour faire simple j'ai fais 2 fichiers avec les résultats obtenus.

Il y a un fichier qui a été fait par la macro qui est dans la conversation.

cdt
 

Pièces jointes

  • EX1.zip
    459 bytes · Affichages: 51
  • EX1.zip
    459 bytes · Affichages: 57
  • EX1.zip
    459 bytes · Affichages: 64

2passage

XLDnaute Impliqué
Re : Sauvegardes en .CSV

Bonjour,

Le probleme c'est que le CSV mets un séparateur "," par défaut. Il faut forcer Excel a accepter le séparateur de liste configuré sur le poste avec :

ActiveWorkbook.SaveAs Filename, FileFormat:=xlCSV, CreateBackup:=False, Local:=True

normallement, ça marche (en test ici en tout cas :D )

A ++
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Sauvegardes en .CSV

Bonjour à tous

Je suis d'accord avec "aperez" :
En supposant que ";" est défini comme séparateur dans les 'Options régionales et linguistiques' de Windows,

ActiveWorkbook.SaveAs Filename:="Chemin & Nom du fichier.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True

enregistre la feuille active avec ';' comme séparateur de champ.

Mais "rjcb" ajoute ensuite dans son code :

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True


... et ses ennuis commencent, car, ce faisant, et contre toute logique, il rétablit ',' comme séparateur de champ. Merci Bill !
J'ai longtemps sué sur ce problème que j'ai résolu en écrivant :

Application.DisplayAlerts = False
ActiveWindow.Close SaveChanges:=False
Application.DisplayAlerts = False


SaveChanges:=False
est nécessaire même si
ActiveWindow.Close
suit immédiatement ActiveWorkbook.SaveAs

Logique implacable de Mr Bill. Mais, puisqu'il croit qu'il a existé un 29 février 1900, tout devient possible...

Bon courage à tous...
 

Discussions similaires

Réponses
3
Affichages
275

Statistiques des forums

Discussions
314 211
Messages
2 107 325
Membres
109 803
dernier inscrit
Nicodu12