Formatage de nombre VBA

Le
Fred
Bonjour,

Sur un document dont le code est ci-dessou, je souhaiterais avoir le format
de nombre : 10,00 au lieu de 10,000 comme c'est le cas actuellement.
Pour moi, il me semble que la chaîne à modifier est : str_mot =
Mid(str_chaine, position_mot, InStr(position_mot, str_chaine, "*X*") -
position_mot)
Mais je sèche sur les options de format ainsi que sur l'endroit où les
positionner

Si quelqu'un avait une petite idée cela m'arrangerait pas mal
Merci.

FRED.





'Declare Function GetTickCount Lib "Kernel32" () As Long
Sub macro_item()
Dim str_item As String
Dim str_mot As String
Dim position_item As Double
Dim position_mot As Double
Dim champ As Field

For Each champ In ActiveDocument.Fields
If InStr(1, str_chaine, "ITEM") = 0 Then
Exit For
End If

If InStr(1, champ, "MACROBUTTON SAT") <> 0 Then
str_item = Trim(Mid(champ.Code, Len(" MACROBUTTON SAT ") + 1))
position_item = InStr(1, str_chaine, str_item)

If position_item > 0 Then
position_mot = InStr(position_item, str_chaine, "*X*") + 3
str_mot = Mid(str_chaine, position_mot, InStr(position_mot,
str_chaine, "*X*") - position_mot)
If str_mot = "" Then
champ.Delete
Else
champ.Select
Selection.Text = RTrim(LTrim(str_mot))

End If
str_chaine = Mid(str_chaine, 1, position_item - 1) &
Mid(str_chaine, position_mot + Len(str_mot) + 3)
End If
End If
Next

str_chaine = ""
Selection.GoTo what:=wdGoToLine, Which:=wdGoToFirst, Count:=1, Name:=""


' MsgBox "Temp execution" & GetTickCount - X & " ms"
End Sub
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
Lotre
Le #19844151
bonjour,

Euh ... ce n'est pas très clair tout ça...

1. Comme on ne sait pas trop ce que contiennent les valeurs lues
dans les champs ni ce que ce code veut en faire , il est délicat d'y
modifier qqchose...


2. Il existe en VBA une fonction prévue pour formater en texte
les nombres ou les dates :

Chaine = Format(ValeurNumérique,ChaineDuFormat)


Seul détail :
En VBA il faut utiliser le "." comme séparateur décimal
mais la chaine retournée utilisera les paramètres locaux



par exemple
MsgBox Format(12.5 / Sqr(2), "# ###.00")

affiche 8,84

et
MsgBox Format(12.5 / Sqr(2), "# ###.000")

affiche 8,839


Cordialement;

HB
Fred
Le #19848211
Bonjour,

Effectivement, ma demande n'était pas très claire.
Je l'ai précisée avec Géo sur le NG de Word.

Merci pour votre réponse.

FRED.

"Lotre" news:
bonjour,

Euh ... ce n'est pas très clair tout ça...

1. Comme on ne sait pas trop ce que contiennent les valeurs lues
dans les champs ni ce que ce code veut en faire , il est délicat d'y
modifier qqchose...


2. Il existe en VBA une fonction prévue pour formater en texte
les nombres ou les dates :

Chaine = Format(ValeurNumérique,ChaineDuFormat)


Seul détail :
En VBA il faut utiliser le "." comme séparateur décimal
mais la chaine retournée utilisera les paramètres locaux



par exemple
MsgBox Format(12.5 / Sqr(2), "# ###.00")

affiche 8,84

et
MsgBox Format(12.5 / Sqr(2), "# ###.000")

affiche 8,839


Cordialement;

HB


Publicité
Poster une réponse
Anonyme