Rechercher : dans
Par :

[Excel vba]enregistrement au format csv

Dernière réponse le 17 mar 2009 à 16:07:10 tompols, le 7 mar 2005 à 19:38:26 
 Signaler ce message aux modérateurs

Bonjour,

J'utilise le code suivant :
Dim chemin
chemin = ThisWorkbook.Path & ""
ActiveWorkbook.SaveAs Filename:= _
chemin & "nomfichier.csv", FileFormat:=xlCSV, CreateBackup:=False
Mais excel me génere un fichier csv avec "," comme séparateur au lieu de ";". Quand je fais la même opération manuellement, le séparateur est bien ";" !!??

Quelqu'un à une idée ?

Merci de votre aide,

Tom

Meilleures réponses pour « [Excel vba]enregistrement au format csv » dans :
Exporter à coup sûr du CSV VoirExporter des données au format CSV n'est pas si trivial qu'il n'y paraît. Dès que vos données contiennent des virgules ou des guillemets, tout semble partir en vrille. Il y a une astuce. Voici comment procéder pour exporter à coup sûr vos...
Excel - Mises en forme conditionnelles illimitées VoirMises en Forme Conditionnelles Illimitées Sommaire: Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents...

1

gbinforme, le 7 mar 2005 à 20:31:35

Bonjour

dans vba lorsque tu mets une formule par exemple :

ActiveCell.FormulaR1C1 = SI(C7="";"";RANG(C7;C$3:C$27;0))

elle ne fonctionne pas.

mais celle ci fonctionne :

ActiveCell.FormulaR1C1 = SI(C7="","",RANG(C7,C$3:C$27,0))

car vba ne connait pas ; et exige ,

de toute façon si ton fichier CSV est avec virgule,
cela ne l'empêche pas de fonctionner.

toujours zen

Répondre à gbinforme

2

tompols, le 8 mar 2005 à 10:06:53

Merci pour ta réponse mais le pb est que j' ai absolument besoin de ";" comme séparateur pour un upload ultérieur. QQ1 connait-il le moyen de choisir le séparateur à l'enregistrement par macro au format csv ???

Merci

Répondre à tompols

3

tompols, le 8 mar 2005 à 11:10:40
  • +2

Bonjour,

pb résolu :
Sub SaveAsCSV(période)
Dim Range As Object, Line As Object, Cell As Object
Dim StrTemp, chemin As String

Dim Separateur As String
chemin = ThisWorkbook.Path & ""
Separateur = ";"
Set Range = ActiveSheet.UsedRange

Open chemin & "JDEreport" & période & ".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

Merci qd même,

Tom

Répondre à tompols

4

Juillet45, le 24 fév 2009 à 15:32:47
  • +3

Bonjour,

J'ai eu le même souci de mon côté avec des macros Excel 200 qui ne fonctionne plus sous 2003.

Tout simplement car dans l'instruction SAVEAS, il y a une nouveau paramètre nommé 'local'

Il faut le mettre à TRUE pour qu'il prenne en considération les options langue d'excel.

Sinon, ilprends les options langues de Visual Basic.

Et souvent Excel est en français, donc avec un séparateur ;
Alors que VBA est en anglais avec séparateur ,.

Pour moi cela a fonctionné

voici la ligne VBA pour Excel2003 :
ActiveWorkbook.SaveAs Filename:=fname2, FileFormat:=xlCSV, CreateBackup:=False, local:=True

voici la ligne pour Excel2000:
ActiveWorkbook.SaveAs Filename:=fname2, FileFormat:=xlCSV, CreateBackup:=False

Répondre à Juillet45

5

 alx, le 17 mar 2009 à 16:07:10
  • +1

Merci pour cette précision, je suis en train de migrer du VBA Excel 97 vers du 2003-2007, et vous avez mis fin à plusieurs jours de recherche.....

Répondre à alx
Collection CommentÇaMarche.net