Bonjour,


Je dispose de fichiers .txt dans un répertoire se composant tous de la même manière, par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
D,CNIT,,,,,,CNIT La défense,CNIT - LA DEFENSE,,,,,
C,CAFET,,,,,,Cafétéria ATRIUM,,,,,,
C,D,,,,,,Bâtiment D,,,,,,
C,P,,,,,,Bâtiment P Le DOME,,,,,,
C,PA,,,,,,Bâtiment PA,,,,,,
C,C,,,,,,Bâtiment C,,,,,,
C,L,,,,,,Bâtiment L,,,,,,
C,N,,,,,,Bâtiment Le NAUTILE,,,,,,
C,F,,,,,,Bâtiment F Le GALION,,,,,,
Je dois entourer de guillemets sur chaque ligne les chaînes de caractère, le résultat doit donc être de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
"D","CNIT",,,,,,"CNIT La défense","CNIT - LA DEFENSE",,,,,
"C","CAFET",,,,,,"Cafétéria ATRIUM",,,,,,
J'utilise actuellement 2 morceaux de code VBA (trouvés sur ce forum et grâce à l'aide de certains ) pour entourer de guillemets les chaînes de caractère et enregistrer le nouveau fichier en .txt :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Sub Guillemets()
Dim c As Range
For Each c In Sheets("Nom_feuille").Cells.SpecialCells(xlCellTypeConstants)
    c.Replace Chr(34), ""                       'éliminer les doubles quotes existantes
    c.Value = Chr(34) & c.Value & Chr(34)       'pour encadrer le contenu de chaque cellule
Next c
End Sub
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
Sub ExportTXT()
 
' Exportation du fichier au format TXT
 
MsgBox "Exportation du fichier"
Dim Ranges As Object, Line As Object, Cell As Object
Dim StrTemp As String
Dim Separateur As String
 
Separateur = ","
Filename = Application.GetSaveAsFilename(Nom_Fichier, "Text Files (*.txt), *.txt")
Set Ranges = ActiveSheet.UsedRange
Open Filename For Output As #1
 
For Each Line In Ranges.Rows
StrTemp = ""
For Each Cell In Line.Cells
 
StrTemp = StrTemp & CStr _
(Cell.Text) & Separateur
 
Next
Print #1, StrTemp '= " "
Next
Close
 
End Sub
Est-il possible d'avoir un code VBA qui prend tous les fichiers .txt d'un répertoire? Ceci d'afin de permettre aux utilisateurs de faire cette opération d'une traite et pas fichier par fichier?
De plus, le 2ème bout de code ci-dessus met également une virgule à la fin de la chaîne de caractère, ce qui n'est pas toujours nécessaire, comment lui préciser de ne pas en mettre une?

Merci en avance pour votre aide!