Bonjour à vous ! Étant peu connaissant en VBA, j'ai besoin de votre aide. J'ai fait beaucoup de recherches pour tenter d'y arriver par moi-même mais en vain.
Ma VBA montre bien le fichier qui apparait qui a bien respecté les commandes VBA avec les datas dans les bonnes cellules et avec la fenêtre de sauvegarde en premier plan où il est bien inscrit CSV (Séparateur : point-virgule) (*.csv) pour la sauvegarde. Je clique enregistrer. . Je ferme ce fichier puis le ré-ouvre à partir de son emplacement avec Excel en CSV et tout est bien disposé, mais quoique j'ai essayé, le séparateur demeure toujours la virgule.
Dans les paramètres régionaux, "séparateur de liste" est bel et bien avec un point-virgule. J'ai essayé avec Local:=True pour respecter les paramètres et cela n'est pas respecté. J'ai lu à quelque part que c'est le setting du langage VBA en anglais qui prévaut et qui force le séparateur à virgule, ne tenant donc pas compte de la commande Local:=True.
Est-ce qu'il y aurait une façon de forcer la commande à utiliser les paramètres régionaux ?
Comme je souhaite que tout cela soit automatisé, j'ai pensé aussi à la possibilité suivante: Faire en sorte que dès que la sauvegarde et fermeture du fichier se fasse automatiquement par la VBA, que cette même VBA fasse ré-ouvrir instantanéement le fichier CSV à partir du même nom et emplacement sauvegardé et qui sera donc avec des virgules, puis ensuite, que la VBA fasse la fonction de Remplacer partout les virgules par des points-virgules.
J'ai essayé avec l'enregistreur de macros mais sans résultat, je manque beaucoup trop de connaissances VBA.
Voici donc le code de sauvegarde et le fichier est joint...
Merci beaucoup à ceux qui prendront de leur expertise et précieux temps pour m'aider !
MisterT
Ma VBA montre bien le fichier qui apparait qui a bien respecté les commandes VBA avec les datas dans les bonnes cellules et avec la fenêtre de sauvegarde en premier plan où il est bien inscrit CSV (Séparateur : point-virgule) (*.csv) pour la sauvegarde. Je clique enregistrer. . Je ferme ce fichier puis le ré-ouvre à partir de son emplacement avec Excel en CSV et tout est bien disposé, mais quoique j'ai essayé, le séparateur demeure toujours la virgule.
Dans les paramètres régionaux, "séparateur de liste" est bel et bien avec un point-virgule. J'ai essayé avec Local:=True pour respecter les paramètres et cela n'est pas respecté. J'ai lu à quelque part que c'est le setting du langage VBA en anglais qui prévaut et qui force le séparateur à virgule, ne tenant donc pas compte de la commande Local:=True.
Est-ce qu'il y aurait une façon de forcer la commande à utiliser les paramètres régionaux ?
Comme je souhaite que tout cela soit automatisé, j'ai pensé aussi à la possibilité suivante: Faire en sorte que dès que la sauvegarde et fermeture du fichier se fasse automatiquement par la VBA, que cette même VBA fasse ré-ouvrir instantanéement le fichier CSV à partir du même nom et emplacement sauvegardé et qui sera donc avec des virgules, puis ensuite, que la VBA fasse la fonction de Remplacer partout les virgules par des points-virgules.
J'ai essayé avec l'enregistreur de macros mais sans résultat, je manque beaucoup trop de connaissances VBA.
Voici donc le code de sauvegarde et le fichier est joint...
VB:
fname = Application.GetSaveAsFilename(InitialFileName:=Range("A2").Value & "_" & Range("G4").Value & Range("H4").Value & "_" & Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2), FileFilter:="CSV (Séparateur : point-virgule) (*.csv), *.csv", Title:="Save As")
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV
MisterT