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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lotre
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
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")
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
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" a écrit dans le message de 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
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" <moi@pas.la.ici> a écrit dans le message de
news:ekpImn6DKHA.5068@TK2MSFTNGP03.phx.gbl...
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")
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" a écrit dans le message de 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")