Bonjour à tous,

Je suis un débutant dans les macros et j'ai de ce fait quelques soucis :

J'ai une variable tableau dans laquelle j'ai un certain nombre de données. Je souhaite copier ces données dans une nouvelle feuille d'un nouveau classeur dont le format est de type CSV. Dans la mesure où excel "force"/remplace les points des nombres contenus dans ce tableau par des virgules alors que ce n'est pas le format attendu, j'ai procédé par FSO pour contourner ce problème :

Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub fso_test()
Dim tabl() As Variant
Dim csvFilePath As Variant
Const ForWriting = 2
Dim objFSO As Object
Dim objCSVFile As Object
Dim i As Integer
Dim j As Integer
 
tabl = Range("A1").CurrentRegion                            'juste un exemple car les données du tableau sont issues d'un autre traitement
 
Debug.Print tabl(1, 2)
 
 'Creation CSV
csvFilePath = "C:\TestExport.csv"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objCSVFile = objFSO.CreateTextFile(csvFilePath, _
    ForWriting, True)
 
'Copie des données
For i = 1 To UBound(tabl, 1)
    For j = 1 To UBound(tabl, 2)
    objCSVFile.Write Chr(34) & tabl(i, j) & Chr(34) & ","
    Next
    objCSVFile.Writeline
Next
 
objCSVFile.close
set objCSVFile = nothing
set objFSO = nothing
 
End sub
Mais je ne suis pas satisfait de la méthodologie et du résultat (obligé d'utiliser l'outil Excel de conversion, écrase le fichier existant,...)

Du coup, pour synthétiser, auriez-vous des lignes de code svp permettant de solder les points suivants :
- PB de la virgule forcée par excel (ce qui est normal format local) lors de la copie des données du tableau dans une feuille excel : ça marche en changeant le format des colonnes concernées en texte + replace, mais existe t il une solution m'épargnant ces lignes de code?

- Export des données de la variable tableau dans un fichier CSV avec test si fichier existant pour ne pas l'écraser

- Egalement un code permettant d'insérer une ligne supplémentaire dans mon tableau déclaré en variable, est-ce "possible"?

En vous remerciant d'avance.