Sur mon fichier Excel j'ai créé un lien vers Xe.com le site de devises car j'ai besoin de taux actualisés dans mes feuilles de calculs.
Problème : les taux de changes sont importés avec un point pour les décimales.
Je voudrais remplacer ce point par une virgule pour effectuer mes calculs, et que ce remplacement soit fait automatiquement à chaque actualisation du taux de change ==> besoin de code VBA ?
J'ai cherché sur le net des solutions mais les résultats sur ma feuille de calculs sont très peu ... existants.
Voici par exemple un code que j'ai trouvé sur le net :
Code:
Sub PvV()
Sheets("Currencies").Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False
End Sub
Re : Remplacer point par virgule à chaque actualisation des taux de changes
Bonjour,
essaye peut être la conversion de données, code à placer dans le module de la feuille concernée, convertit la 1ère colonne...
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.EnableEvents = False
Columns(1).TextToColumns Destination:=Range("A1"), DecimalSeparator:="."
.EnableEvents = True
End With
End Sub
Re : Remplacer point par virgule à chaque actualisation des taux de changes
Bonjour,
Et merci pour vos réponses ! J'ai fuis la complexité et suis passé il y a peu de temps par un SUBSTITUE les colonnes d'a coté.
Claude je n'ai pas essayé ta formule mais elle ressemble beaucoup à la mienne, qui ne fonctionnait pas. Qu'est ce qu'il manquait dans ma formule ?
Pierrot, merci pour ta formule, j'aimerais l'essayer.
Le private sub worksheet_change(Byval Target as Range) est là pour activer ce code dès qu'il y a modification (=actualisation de la feuille) ?
Les Application.EnableEvents = sont là pour quelle raison ?
Re : Remplacer point par virgule à chaque actualisation des taux de changes
C'était pratiquement la même formule mais en creusant, je me suis aperçu que si il y a 3 décimales après la virgule, cela ne marchait pas!!! Je proposais une petite mise en forme des cellules avant d'appliquer la macro.