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

Macro et paramètres

12 réponses
Avatar
Alain Siksik
Bonjour à tous,

Une petite question idiote:

Est-il possible de passer des (au moins 1) paramètre à une macro?

L'idée est d'avoir des boutonMacro qui appelle toujours la même macro mais
avec un paramètre différent à chaque fois.

J'avoue honnêtement craindre une réponse négative franche.

A défaut, connaitriez-vous un "truc" pour faire le même genre de chose.
Vous pouvez oublier le développement d'une macro par bouton, j'ai déjà testé
et c'est lourd. Même quand on développe une macro pour le faire à sa place.

A bientôt et merci.

Alain

2 réponses

1 2
Avatar
Alain Siksik
Bonjour, et merci de ta réponse.

Je maîtrise proprement l'utilisation des variables et des interfaces
utilisateur. De ce côté pas de souci.
En fait le but est de remplacer le mécanisme des commentaires par un autre
qui ne se "voit pas" avec bien entendu tout le problème de la récupération et
la mise à jour de l'information puisque justement elle n'est plus visible.
Et le pire c'est qu'on doit pouvoir faire ça dans n'importe quel document
(bon ça c'est simple avec un modèle global) et à n'importe quel endroit (ça
c'est plus dur) et plusieurs fois dans un document (là c'est carrément
complexe).
Pour info, avec une génération de document à partir des informations
stockées (sous forme de commentaires) il y a un peu plus de 11000 lignes de
code dont une grosse partie 90% environ pour la génération du document.

A+


Alain Siksik was telling us:
Alain Siksik nous racontait que :

Bonjour à tous et merci de vos réponses.

Je vais essayer de synthétiser au vue de mon petit problème perso.

Une macro au sens Word (Alt+F8) est une procédure (public sub) qui ne
comporte aucun paramètre.

Je pense être en droit de déduire, que l'on ne peut donc pas passer de
paramètre.

J'aurais en fait souhaité un champ du style {MACROBUTTON MaMacro(3)
"Mon texte affiché"} l'idée étant d'appeler la macro "MaMacro" en lui
fournissant le paramètre 3.

L'idée était de sélectionner une portion de texte, d'appeler une
macro (sans paramètre) mais qui affiche un user form pour saisir des
informations complémentaires, de stocquer ces infos dans des
variables doc et ....
de trouver un truc pour que quanfd on re-clique sur la portion de
texte on ré-optienne les informations complémentaires.
Le tout sans qu'il n'y ait ni commentaire ni texte rajouté hors un
surlignage éventuel.


Il serait tout simple de stocker les valeurs du User Form dans des variables
de document.
Voici un example de code de base pour t'aider à commencer ton projet:

Sub AfficheUserForm()
Const docvarData1 As String = "Data1"
Const docvarData2 As String = "Data2"
Const docvarData3 As String = "Data3"

Dim frmData As frmDonnees

Set frmData = New frmDonnees

With frmData
If ActiveDocument.Variables.Count <> 0 Then
.txtData1.Text = ActiveDocument.Variables(docvarData1).Value
.txtData2.Text = ActiveDocument.Variables(docvarData2).Value
.txtData3.Text = ActiveDocument.Variables(docvarData3).Value
End If

.Show

ActiveDocument.Variables(docvarData1).Value = .txtData1.Text
ActiveDocument.Variables(docvarData2).Value = .txtData2.Text
ActiveDocument.Variables(docvarData3).Value = .txtData3.Text

End With

Unload frmData
Set frmData = Nothing

End Sub


--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org






Avatar
Geo

Bonjour, et merci de ta réponse.

Je maîtrise proprement l'utilisation des variables et des interfaces
utilisateur. De ce côté pas de souci.
En fait le but est de remplacer le mécanisme des commentaires par un autre
qui ne se "voit pas" avec bien entendu tout le problème de la récupération et
la mise à jour de l'information puisque justement elle n'est plus visible.


je reformule pour être certain de bien suivre:
Vous faites l'analogie avec les commentaires, donc :
Vous voulez que lorsqu'on appuie sur un bouton une boite de dialogue
s'ouvre pour y rentrer un texte et que ce texte soit ensuite enregistré
quelque part, mais bien caché et relié à l'endroit où était le point
d'insertion au moment du clic ?
Et quand est-ce qu'on le réaffiche ce texte ?
Du texte masqué, ça ne suffirait pas ?

--
A+

1 2