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.
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
Salut! _______________________________________ Jean-Guy Marcil - Word MVP
Word MVP site: http://www.word.mvps.org
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
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
Salut! _______________________________________ Jean-Guy Marcil - Word MVP
Word MVP site: http://www.word.mvps.org
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+
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 ?
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 ?