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

Formatage de nombre

11 réponses
Avatar
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

1 réponse

1 2
Avatar
Fred
Bonjour Geo,

Je m'en suis tiré par une petite bidouille, qui reprenait votre idéee
d'enlever un caractère à la fin de la chaîne :

MyCheck = str_mot Like "*.000*"
If MyCheck = True Then
str_mot = Mid(str_chaine, position_mot, InStr(position_mot,
str_chaine, "*X*") - position_mot - 1) 'suppression du dernier caractère
Else
End If


Je garde toutefois vos précieues information pour faire face aux autres
demandes que je pourrais avoir.

Merci encore de votre aide.

Bonne journée,

FRED.


"Geo" a écrit dans le message de
news:
Bonjour FRED.
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Merci,
L'opérateur Like fonctionne, mais j'ai toujours un problème (encore !!).

Ma recherche "mycheck" me renvoie bien mes nombre à trois décimales, mais
mon formatage reste sans effet...
Si je rentre str_mot = Format("# ##0.00") (j'ommet donc str_mot), c'est
bien mes chiffres à trois décimales qui sont impactés mais bien entendu
je perds la valeur de str_mot (j'obtiens # ##0.00 écris à la place)....



str_mot est une chaîne de caractère et non une valeur numérique, la
fonction Format n'a donc aucune action sur son contenu.
Passez par une variable numérique :
Dim Valeur as Double
Valeur = str_mot
str_mot = Format(Valeur, "# ##0.00")

--
A+




1 2