VBA - Fonctions Cells.Replace / Wb.SaveAs sur fichier .csv
Bonjour,
J'ai créé ce fichier qui me permet :
- D'ouvrir et tous les fichiers .csv d'un dossier source les uns après les autres
- De remplacer des valeurs (+ Message pour nous dire que les modifications ont été faites)
- D'enregistrer le fichier dans un dossier destination au format .csv (+ Message pour nous confirmer le bon enregistrement du fichier)
- Fermer le fichier
- Supprimer le fichier du dossier source (+ Message pour nous confirmer la bonne suppression du fichier)
Le problème est le suivant : Les changements ne sont pas visibles quand j'ouvre le fichier enregistré dans le dossier destination.
Problème : Ou les changements ne sont pas appliqués, Ou l'enregistrement au format .csv ne garde pas les modifications (Format de cellule mauvais ?)
Sub Ouvrirfichiers()
Dim Fichier As String 'Déclaration variable Fichier
Dim CheminSource As String 'Déclaration variable CheminSource
Dim CheminDestination As String 'Déclaration variable CheminDestination
Dim Wb As Workbook
Application.DisplayAlerts = False 'Désactive l'alerte si fichier du même nom existe déjà lors de la sauvegarde
CheminSource = "C:\Users\jeff.vialelles\Downloads\TEST\" 'Déclaration du CheminSource
CheminDestination = "C:\Users\jeff.vialelles\Downloads\TESTCOPIE\" 'Déclaration du CheminDestination"
Fichier = Dir(CheminSource & "*.csv") 'Traite les fichiers qui se trouvent dans CheminSource avec .csv en extension
Do While Fichier <> ""
Set Wb = Workbooks.Open(CheminSource & Fichier) 'Ouvre les fichiers qui correspondent au critère .csv et dans le DossierSource
Cells.Replace What:=",1/", Replacement:=",01/" 'Remplacement jour 1 par jour 01
Cells.Replace What:=",2/", Replacement:=",02/" 'Remplacement jour 2 par jour 02
Cells.Replace What:=",3/", Replacement:=",03/" 'Remplacement jour 3 par jour 03
Cells.Replace What:=",4/", Replacement:=",04/" 'Remplacement jour 4 par jour 04
Cells.Replace What:=",5/", Replacement:=",05/" 'Remplacement jour 5 par jour 05
Cells.Replace What:=",6/", Replacement:=",06/" 'Remplacement jour 6 par jour 06
Cells.Replace What:=",7/", Replacement:=",07/" 'Remplacement jour 7 par jour 07
Cells.Replace What:=",8/", Replacement:=",08/" 'Remplacement jour 8 par jour 08
Cells.Replace What:=",9/", Replacement:=",09/" 'Remplacement jour 9 par jour 09
Cells.Replace What:="/1/", Replacement:="/01/" 'Remplacement mois 1 par mois 01
Cells.Replace What:="/2/", Replacement:="/02/" 'Remplacement mois 2 par mois 02
Cells.Replace What:="/3/", Replacement:="/03/" 'Remplacement mois 3 par mois 03
Cells.Replace What:="/4/", Replacement:="/04/" 'Remplacement mois 4 par mois 04
Cells.Replace What:="/5/", Replacement:="/05/" 'Remplacement mois 5 par mois 05
Cells.Replace What:="/6/", Replacement:="/06/" 'Remplacement mois 6 par mois 06
Cells.Replace What:="/7/", Replacement:="/07/" 'Remplacement mois 7 par mois 07
Cells.Replace What:="/8/", Replacement:="/08/" 'Remplacement mois 8 par mois 08
Cells.Replace What:="/9/", Replacement:="/09/" 'Remplacement mois 9 par mois 09
MsgBox "Les valeurs ont été modifiées." 'Message qui nous confirme la modification des valeurs
Wb.SaveAs Filename:=CheminDestination & Fichier 'Sauvegarde le fichier dans le CheminDestination
MsgBox "L'enregistrement a été correctement effectué." 'Message qui nous confirme le bon enregistrement
Wb.Close 'Ferme le fichier
Kill CheminSource & Fichier 'Supprime le fichier dans le CheminSource
MsgBox "Le fichier source a été supprimé." 'Message qui nous confirme la suppression du fichier source
Set Wb = Nothing
Fichier = Dir
Loop
Application.DisplayAlerts = True 'Active l'alerte si fichier du même nom existe déjà lors de la sauvegarde
End SubN'hésitez pas à me dire s'il vous manque des informations.
Merci d'avance !
Bonjour
Peux-tu joindre un exemple de quelques lignes d'un csv représentatif
Zippes-le si le csv n'est pas directement joignable