Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

point en virgule

11 réponses
Avatar
Sylian
Bonjour,

Je cherche à transformer un point en virgule en VBA Excel
J'ai lancé l'enregistreur de macro qui m'a orienté vers un :

Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Si cela fonctionne bien en "direct", quand je lance cette simple macro
ma cellule comportant le chiffre -1.6535 se transforme en 16 535 !

Une solution pour que la macro fonctionne ?

1 réponse

1 2
Avatar
LSteph
Merci! C'est bon à savoir.

@+

--
lSteph

On 21 juil, 17:26, Sylian wrote:
Bonjour et Merci LStpeh pour ta remarque.
J'ai bien aimé le lien que tu as mis avec tes explications et tes
différents codes.
Seulement pour mon fichier en exemple, changer les paramètres régiona ux
suffit sous XL2003 mais cela ne fait rien sous mon XL2007 (étrangement) .
C'est pourquoi j'ai opté par cette méthode alternative car je devrais
importer pas mal de fichiers dans le genre.

Cordialement,

LSteph a écrit :



> Bonjour,

> C'est vrai aussi pour d'autres versions et cela était déjà connu voir
> ma réponse dans un autre fil du 15/02
>http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread...

> toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se
> présente ici selon ton fichier exemple qui
> se solutionne simplement sans nécessiter de conversion, par le choix
> des bons paramêtres régionaux comme l'a souligné Mishell

> Cordialement.

> --
> lSteph

> On 21 juil, 10:35, Sylian wrote:
>> Voici une solution qui peut-être aidera les personnes qui auront con nu
>> le même problème que moi.

>> 1 - Il faut déterminer la version d'Excel utilisé
>> 2 - pour 2002-2003, il faut changer les paramètres dans les options
>> d'Excels pour forcer le séparateur décimal de se mettre en virgule et
>> non en point.
>> 3 - pour excel 2007, il faut remplacer le point par ... par un autre
>> point (celui du pavé numérique) et cela a pour effet de tout affic her
>> avec des virgules.

>> 1 ' Teste la version d'Excel 2003 ou 2007 ?

>> Dim XL2007 as Boolean
>> If Val(Application.Version) >= 11 Then
>> XL2007 = True
>> Else
>> XL2007 = False
>> End If

>> 2 'pour Excel 2002/2003
>> If XL2007 = False Then
>> Application.DecimalSeparator = ","
>> End If

>> 3 ' Pour Excel 2007

>>      If XL2007 = True Then

>>          Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
>>          SearchOrder:=xlByRows, MatchCase:úlse, Search Format:úlse, _
>>          ReplaceFormat:úlse

>>      End If- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


1 2