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

Format nombre après remplacement point par virgule dans une selection

4 réponses
Avatar
fetnat
Bonjour,

Je remplace les points par des virgules pour obtenir un nombre au format
français.

Par exemple :
123.5
456.6
789.7


Sub Macro1()
With selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:=False
End With
selection.NumberFormat = "# ##0.00"
End Sub

Mais les chiffres restent calés à gauche.
Il y a une convertion en chiffre manuelle qui est ignorée par
l'enregistreur de macros mais qui cale les chiffres à droite. ( le petit
carré conteant un losange et point d'exclamation).

Les formules suivantes ne calent pas les chiffres à droite :

selection.NumberFormat = "# ##0.00"

ou bien

selection.NumberFormat = "@"

Comment puis-je transformé ce texte en chiffre ?

Merci pour votre aide

Fetnat

4 réponses

Avatar
FFO
Salut à toi

Pour que les chiffres se mettent à droite de leur cellule il faut mettre les
cellules en format numérique
De plus pour inclure en séparateur une virgule il faut le paramètrer dans
les paramètres régionaux (Panneau de configuration/Options régionales et
linguistiques onglet Options régionales/Personnaliser fenêtre Symbole décimal
à adapter

Cette modification pour être prise en compte par Excel nécessitera sa
fermeture et réouverture

Celà devrait convenir

Dis moi !!!!
Avatar
Ellimac
Bonjour,

Essaie ceci :

Sub Macro1()
For Each c In Selection
c.Replace What:=".", Replacement:=",", LookAt:=xlPart, MatchCase:úlse
c.NumberFormat = "# ##0.00"
SendKeys "{F2}~", True
Next
End Sub

Camille


"fetnat" a écrit dans le message de news:
%
Bonjour,

Je remplace les points par des virgules pour obtenir un nombre au format
français.

Par exemple :
123.5
456.6
789.7


Sub Macro1()
With selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:úlse
End With
selection.NumberFormat = "# ##0.00"
End Sub

Mais les chiffres restent calés à gauche.
Il y a une convertion en chiffre manuelle qui est ignorée par
l'enregistreur de macros mais qui cale les chiffres à droite. ( le petit
carré conteant un losange et point d'exclamation).

Les formules suivantes ne calent pas les chiffres à droite :

selection.NumberFormat = "# ##0.00"

ou bien

selection.NumberFormat = "@"

Comment puis-je transformé ce texte en chiffre ?

Merci pour votre aide

Fetnat


Avatar
fetnat
Bonjour,

FFO,

Non, il y a une manip à faire à la mano pour avoir des chiffres, avec le
petit carré "losange ! " que je n'arrive pas à automatiser.

Camille,

Je suppose que F2 est une manière élégante de m'orienter vers la
documentation...
Malheureusement je ne suis pas plus éclairé.
Le numberformat ne travaille pas comme je le souhaite, ce n'est
peut-être pas la bonne piste :)

Cordialement

fetnat

Ellimac a écrit :
Bonjour,

Essaie ceci :

Sub Macro1()
For Each c In Selection
c.Replace What:=".", Replacement:=",", LookAt:=xlPart, MatchCase:úlse
c.NumberFormat = "# ##0.00"
SendKeys "{F2}~", True
Next
End Sub

Camille


"fetnat" a écrit dans le message de news:
%
Bonjour,

Je remplace les points par des virgules pour obtenir un nombre au format
français.

Par exemple :
123.5
456.6
789.7


Sub Macro1()
With selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:úlse
End With
selection.NumberFormat = "# ##0.00"
End Sub

Mais les chiffres restent calés à gauche.
Il y a une convertion en chiffre manuelle qui est ignorée par
l'enregistreur de macros mais qui cale les chiffres à droite. ( le petit
carré conteant un losange et point d'exclamation).

Les formules suivantes ne calent pas les chiffres à droite :

selection.NumberFormat = "# ##0.00"

ou bien

selection.NumberFormat = "@"

Comment puis-je transformé ce texte en chiffre ?

Merci pour votre aide

Fetnat






Avatar
fetnat
J'ai trouvé la solution dans les archives, aimablement fournie par
daniel.j que je remercie.
J'ai gardé le range et j'ai ajouté la selection.

Merci à ceux qui ont répondu.

fetnat

Sub TexteEnChiffre()
Dim maZone As Range
Set maZone = selection 'Range("A1:" &
Range("A100").End(xlUp).Address) 'Définit plage
'maZone.Select
Dim c As Object
With selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:úlse
End With
For Each c In selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
valnum = CDbl(valeur) 'convertit texte en chiffre
c.Value = valnum
c.NumberFormat = "# ##0.00"
suite:
ActiveCell.Offset(1, 0).Select
Next
End Sub


fetnat a écrit :


Bonjour,

FFO,

Non, il y a une manip à faire à la mano pour avoir des chiffres, avec le
petit carré "losange ! " que je n'arrive pas à automatiser.

Camille,

Je suppose que F2 est une manière élégante de m'orienter vers la
documentation...
Malheureusement je ne suis pas plus éclairé.
Le numberformat ne travaille pas comme je le souhaite, ce n'est
peut-être pas la bonne piste :)

Cordialement

fetnat

Ellimac a écrit :
Bonjour,

Essaie ceci :

Sub Macro1()
For Each c In Selection
c.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:úlse
c.NumberFormat = "# ##0.00"
SendKeys "{F2}~", True
Next
End Sub

Camille


"fetnat" a écrit dans le message de news:
%
Bonjour,

Je remplace les points par des virgules pour obtenir un nombre au
format français.

Par exemple :
123.5
456.6
789.7


Sub Macro1()
With selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart,
MatchCase:úlse
End With
selection.NumberFormat = "# ##0.00"
End Sub

Mais les chiffres restent calés à gauche.
Il y a une convertion en chiffre manuelle qui est ignorée par
l'enregistreur de macros mais qui cale les chiffres à droite. ( le
petit carré conteant un losange et point d'exclamation).

Les formules suivantes ne calent pas les chiffres à droite :

selection.NumberFormat = "# ##0.00"

ou bien

selection.NumberFormat = "@"

Comment puis-je transformé ce texte en chiffre ?

Merci pour votre aide

Fetnat