|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 3 ![]() |
Bonjour,
Je programme des calculs automatiques dans des champs words, à partir de variables stoquées dans des signets. Mais seules les opérations de base sont disponibles (+ - / *). Si je veux faire un calcul plus complexe, type cosinus etc ... je dois sûrement passer par une macro, mais je n'y arrive pas. Comment puis-je obtenir un champ calculé automatiquement pour un cosinus (par exemple ?), sachant que je récupère l'angle à partir d'un signet ? Merci. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Les signets ne suffiront pas pour le faire de façon automatique.
Les évènement sur signet n'existent pas. Il faudra impérativement une action sur un bouton ou un évènement pris en compte par Word. Pour Obtenir le cosinus d'un angle c'est Angle doit être en Radiant.
__________________
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 ! |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 3 ![]() |
Merci pour votre réponse.
J'ai essayé de faire une macro, mais je suis encore trop faible ... Je ne sais pas s'il me faut une fonction ou une procédure. Je pensais à quelque chose comme ça, qui se déclenche par un bouton par exemple. Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
C'est un bon début,
La différence entre une procédure et une fonction est assez simple, une fonction renvoie une valeur. Code :
Pour récupérer la valeur d'un signet, il faut utiliser un objet range. Code :
angle = ActiveDocument.Bookmarks("Nom de mon signet'").range.text
__________________
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 ! |
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 3 ![]() |
Alors voilà, merci ça avance,
j'ai donc cette procédure qui me prend la variable dans un signet, calcule mon cosinus et la réinjecte à la suite d'un autre signet. Je souhaiterais réinjecter mon résultat dans un CHAMP appelé "resultat", et pas après un signet, pour pouvoir mettre à jour le champ à chaque exécution de la macro. Il me faut pour celà remplacer Code :
ActiveDocument.Bookmarks("resultat").Range.Text = cosinus Code :
ActiveDocument.fields("resultat") = cosinus Pouvez-vous me corriger cette ligne ? PS je ne connais pas l'index de mon champ, que son nom ... voici la procédure qui fonctionne déjà Code :
Merci d'avance. |
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Presque, Fields n'est pas un objet Word, mais un objet Access.
En Word, c'est Code :
ActiveDocument.FormFields(1).Range.Text = "Moi"
__________________
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 ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com