Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2012, 15h25   #1
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 121
Points : 37
Points : 37
Par défaut Transformer un chiffre en montant automatiquement ex. 25990 en 25,990.00 €

Bonjour,

J'ai souvent des montants en euro ou dollar à entrer ou coller dans mon texte et j'aimerais appliquer un format monétaire à ces chiffres. En ce moment je dois tout taper donc
  1. Ajouter le signe monétaire
  2. Ajouter le signe des milliers si tel est le cas
  3. Ajouter le signe des décimales
  4. Compléter les décimales si tel est le cas
Exemples:

de 27990 à $ 27,990.00

de 33090.2 à 33,090.20

Idéalement j'aimerais appliquer un format monétaire comme avec Excel mais je ne trouve pas.

ATTENTION: ICI IL EST NULLEMENT QUESTION D'IMPORTATION OU DE FUSIONNER DES DONNÉES À PARTIR D'EXCEL. Je dis ça car sur internet il y a plein de post sur le problème des perte des formats de Excel vers Word ce n'est pas du tout ce dont il s'agit ici, je tape tout ou je fais un copier/coller d'un autre texte donc aucun lien avec Excel.

Existe t-il un moyen d'automatiser cela peut-être avec une macro ? Cela me permettrait aussi d'uniformiser l'affichage de mes montants et éviterait beaucoup d'erreurs.

Merci à tous.
PiPo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 16h37   #2
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 121
Points : 37
Points : 37
Petite mise à jour,

Bon je suis totalement néophyte dans le domaine de la programmation des macros mais j'ai quand même essayé quelque chose. Je n'ai pas le temps de me lancer dans la programmation des macros (peut-être à temps perdu), l'aide est assez exaustive et ça prend du temps lire tout ça.

Code :
1
2
3
4
5
6
7
8
 
Sub ConvertirEnMontant()
'
' ConvertirEnMontant Macro
'
Selection.TypeText Format(Selection.Text, "$#,##0.00;($#,##0.00)")
 
End Sub
mais ça ne fonctionne pas, pourtant Selection.Text contient bien la valeur sélectionné en format chaine (j'ai vérifié avec le débogeur) je dois probablement la convertir en format nombre de plus je veux remplacer la valeur sélectionné et non pas ajouter une autre valeur en format monétaire donc Selection.TypeText n'est probablement pas approprié


Suggestions bienvenue !
PiPo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 17h28   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 345
Points : 29 255
Points : 29 255
Salut,

Word ne permet pas de convertir un nombre entré au clavier.
Sauf si tu entre en conversion automatique toutes les possibilités de conversion.

Il faut que la liste soit exhaustive, ce qui n'est pas très simple.

La macro que tu nous donnes ne convertit qu'un texte sélectionné à la souris.
Il faut donc sélectionner le texte et lancer la macro ensuite.

Seul Excel permet d'appliquer un format lors de la saisie dans une cellule.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 17h51   #4
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 121
Points : 37
Points : 37
Non, non

Il n'est pas question d'appliquer un format en cours de frappe mais après, je place mon curseur sur un chiffre et lance la macro et le chiffre est converti en format monétaire, enfin visuellement même si il n'existe pas de format monénaitre proprement dit (enfin je ne pense pas ), mais bon je rame dans la documentation de VBA et j'ai presque trouvé.

Code :
1
2
3
4
5
6
7
8
 
Sub ConvertirEnMontant()
'
' ConvertirEnMontant Macro
 
Selection.Text = Format(Selection.Text, "$#,##0.00;($#,##0.00)")
 
End Sub
Sauf qu'ici je dois sélectionner le chiffre au complet j'aimerais juste placer mon curseur sur le chiffre en question et la macro devrais sélectionner pour moi tout le chiffre (le mot au complet) avec sa partie décimale.

De plus j'aimerais lancer la macro à partir du menu contextuel (clic droit sur la souris) si c'est possible au lieu de la barre de menu en haut de la fenêtre. Imaginer pouvoir juste placer le curseur sur un chiffre et clic droit sur la souris et on reformate son apparence en format monétaire.

Bon il faut que je quitte pour le boulot, je n'ai pas le temps.
PiPo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 21h05   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 345
Points : 29 255
Points : 29 255
Salut,

Pas si simple, avec ta décimale.
Si tu n'as que des chiffres, c'est facile Word considère qu'un groupe de chiffre est un mot. Seulement, un point termine toujours un mot, donc quand tu as des décimales, elles ne sont pas prises en compte.

Code :
Selection.MoveRight unit:=wdWord, Count:=1, Extend:=wdExtend
Il faut délacer la sélection tant que l'on rencontre des chiffres ou des points.

On pourrait aussi envisager d'étendre la sélection tant que l'on ne rencontre pas un espace.

Pour le menu contextuel, c'est simple, il suffit de faire un modèle de document qui possède ce menu en modifiant son XML pour ensuite l'ajouter comme complément à Word.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h47.


 
 
 
 
Partenaires

Hébergement Web