Bonjour,
J'ai une macro dont l'un des objectifs est de transformer en fichier .xls un fichier .txt
Voici le code, très court :
Code :
- Sub Importation_donnees_sources()
- Dim chemin_fich As String
- Dim nom_fichier As String
- Dim chemin_save As String
- Dim i, j As Long
-
-
- 'On va chercher dans la feuille les informations fournies par l'utilisateur :
- ' - le chemin réseau où sont rangés les fichiers :
- chemin_fichier = Sheets("Résultat" ).Range("B4" ).Value
- ' - le nom du fichier à convertir :
- nom_fichier = Left(Sheets("Résultat" ).Range("B5" ).Value, Len(Sheets("Résultat" ).Range("B5" ).Value) - 4)
- ' - l'endroit où devra être enregistré le fichier une fois converti
- chemin_save = Sheets("Résultat" ).Range("B6" ).Value
- 'On va chercher les données dans le fichier source indiqué par l'utilisateur
- Workbooks.Open Filename:=chemin_fichier & "\" & nom_fichier ' & ".txt"
- 'On enregistre le fichier avec le nom correspondant au fichier .txt qui était en entrée
- ActiveWorkbook.SaveAs Filename:=chemin_save & "\" & nom_fichier & ".xls", FileFormat:=xlNormal
- 'On supprime toutes les lignes vides
- i = 2
- While Not (ActiveWorkbook.Sheets(nom_fichier).Cells(i, 1).Value = "" And ActiveWorkbook.Sheets(nom_fichier).Cells(i + 1, 1).Value = "" And ActiveWorkbook.Sheets(nom_fichier).Cells(i + 2, 1).Value = "" )
- If ActiveWorkbook.Sheets(nom_fichier).Cells(i, 1).Value = "" Then
- ActiveWorkbook.Sheets(nom_fichier).Rows(i).Delete
- Else
- i = i + 1
- End If
- Wend
- 'On ferme le fichier
- ActiveWorkbook.Close savechanges:=True
- End Sub
|
Le problème :
Quand le fichier txt contient des valeurs du type "4951016,172", c'est "4951016172" qui est enregistré dans le fichier Excel. A mon grand désarroi, puisque ma macro ne travaille pour le moment pas du tout sur les virgules ou autre.
Je précise que le fichier source contient bien des virgules et non des points.
Y'en a t-il parmi vous qui se sentent inspirés ?