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

Le
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:ú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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #18835771
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 !!!!
Ellimac
Le #18835761
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" %
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


fetnat
Le #18837331
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" %
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






fetnat
Le #18837811
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" %
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








Publicité
Poster une réponse
Anonyme