J’ai besoin de vous compétences. Je reçois des fichiers csv ou txt que je dois exploiter.
Après importation des données dans mon fichier de travail, vue que les fichiers ont des structures différentes, je voudrais parcourir toutes les cellules de la feuille pour remplacer le (.) point par une (,) virgule.
Parmi les données certaines sont des nombres entiers représentants soient un numéro de compte, série ou clé.
Sur la feuille les données à traiter sont alignées à gauche, ils représentent donc du texte (ex : 221.36).
Mon idée est rechercher le point (.), vérifier que le caractère à gauche du point est un chiffre et dans ce cas remplacer le point par une virgule.
En vous remerciant par avance.
Merci beaucoup Chris pour ton retour mais je n'ai pas bien compris ta proposition de " préciser au moment de l'importation et non après".
Voici ci-dessous le bout de code qui me permet d'importer les données (code proposé par stapple1600, si je me souviens bien).
VB:
Option Explicit
Dim Fichier As Variant
Sub Importer()
Fichier = Application.GetOpenFilename("Fichiers CSV (*.csv),*.csv")
If Fichier = False Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'sécurité
With Workbooks.Open(Fichier).Sheets(1)
.Columns(1).TextToColumns .[A1], xlDelimited, Semicolon:=True
Feuil1.Cells.Clear
.UsedRange.Copy Feuil1.[A1]
.Parent.Close False
End With
End Sub
Toujours aussi efficace. Je te remercie beaucoup pour ton code qui fonctionne très bien.
Stp, pourrais-tu m'expliquer ton code car sincèrement, j'attendais une macro avec find et findnext du point (.) et ensuite vérifier le caractère à gauche du point. Je m'aperçois que j'étais à côté de la plaque. Ton code est très court et très efficace.
Merci d'éclairer ma lanterne pour dormir moins idiot ce soir.
Un très grand bravo. Je me rends chaque jour qu'il me reste beaucoup à apprendre.
En effet, en rajoutant ton bout de code ça résout le problème.
Merci, tu es très gentille pour le partage de tes connaissances.