VBA transforme virgule en point puis enregistre en csv
Bonjour,
J'ai cherché partout sur les forums, j'ai essayé plein de codes différents et je ne trouve pas la réponse à mes problèmes.
Je récupère un fichier d'un autre logiciel au format TXT, que je transforme sans problème avec vba pour le présenter comme je veux pour ensuite en faire un fichier en csv (que j'intégrerai dans un autre logiciel après).
1er problème : J'ai fini mon fichier sauf que je n'arrive pas à transformer les nombres avec des virgules en nombres avec des points. J'ai essayé de m'enregistrer en macro avec le CTRL+H, et remplace, ça fonctionne parfaitement à la main, mais quand je lance ce code dans la macro ça ne marche pas.
J'ai essayé du Replace, et plein d'autres trucs et ça ne marche pas. j'ai essayé de transformer mon nombre en texte, ... mais rien.
Je désespère car il ne me reste plus que ça pour avoir le fichier propre.
2ème problème : quand le fichier est prêt je copie mon onglet dans une nouvelle fenêtre sans problème mais j'aimerai que la personne qui va exécuter la macro puisse avoir une boîte de dialogue qui lui permette de sauvegarder sous (jusque là j'y arrive) en forçant le nom du fichier à enregistrer (je veux que ce soit enregistré avec le nom "Ecritures") et je veux aussi que le format d'enregistrement soit par défaut du csv point virgule.
Je n'arrive pas à forcer les 2 derniers paramètres.
Merci de m'aider.
PS : je ne peux pas partager le fichier car confidentiel.
Merci
Julie
Bonjour juju24200 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Merci pour votre participation
Concernant votre demande,
1er point attention à votre formulation sur ce forum ou nous sommes tous bénévoles
Quand on demande poliment quelque chose, il vaut mieux utiliser "je voudrais", "je veux" est un ordre
Pour ce qui est de la virgule en point, il faut commencer par transformer les cellules en texte, puis remplacer la virgule
Sub ChangeVirgule()
With Sheets("NomFeuille")
With .Range("A1:A100")
.NumberFormat = "@"
.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End With
End With
End SubPour ce qui est de l'enregistrement, il suffit de faire quelques recherches
https://forum.excel-pratique.com/excel/macro-pour-enregistrer-excel-en-csv-t65893.html
Cordialement