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

10 réponses

1 2
Avatar
Geo

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.


Il n'y a pas de questions idiotes.
La réponse tient de la simple logique : vous voulez un paramètre, comme
fixer sa valeur avec un simple bouton ?
Vous pouvez faire une macro qui appelle votre macro en changeant la
valeur de paramètre d'appel chaque fois.
C'est dérouler une liste, un valeur aléatoire que vous voulez ?
Développez votre idée, il doit y avoir une solution.
En gros bouton -> macro lanceur
macro lanceur -> Macro à lancer + paramètre

--
A+

Avatar
Anacoluthe
Bonjour !

'Alain Siksik' nous a écrit ...
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.


D'abord une /procédure/ peut avoir des paramètres !!!

Public Sub RépondreQuestion(Intervenant as String, Question as String)
Cette procédure admet deux arguments chaînes : Intervenant et Question

Mais cette procédure n'est pas une /macro/
Une macro est une procédure sans argument
Public Sub RepondreSurLeForum() ' <--- notez le ()

Si je sais où trouver mes paramètres (dans un signet, dans une variable
du document, dans une variable publique, dans un fichier etc etc etc) il
est très facile de faire une macro disposant d'arguments variables :

Public Sub RepondreSurLeForum()
D$ = "Alain"
Q$ = "Macro et paramètres"
RépondreQuestion D$, Q$
End Sub

Est-ce que ça vous aide à avancer ?

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS

Avatar
Geo

Mais cette procédure n'est pas une /macro/
Une macro est une procédure sans argument


Heu, tu m'étonnes là.

Le terme de macro, me parait justement employé à toutes les sauces.
Tiens dans la boite Organiser qui nous est chère (parce qu'elle
n'existe que dans Word) il y a un onglet marqué "macro" et qu'est-ce
qu'il y a dedans ? des modules.

--
A+

Avatar
Anacoluthe
Hello Geo !

'Geo' nous a écrit ...
Mais cette procédure n'est pas une /macro/
Une macro est une procédure sans argument
Heu, tu m'étonnes là.



:-) je maintiens !

Le terme de macro, me parait justement employé à toutes les sauces.
Tiens dans la boite Organiser qui nous est chère (parce qu'elle n'existe
que dans Word) il y a un onglet marqué "macro" et qu'est-ce qu'il y a
dedans ? des modules.


C'est Macros au pluriel dans 'Organiser'
Abus de langage : les modules ne contiennent pas que LES macros

Mais je persiste : pour Word une *procédure* à arguments n'est jamais
listée dans Alt+F8, n'est pas attribuable à un menu, un bouton ou un
raccourci-clavier et n'est donc PAS une macro au sens /macrocommande/
qui est l'étymologie du mot macro.

Tu n'es pas d'accord ?

Anacoluthe
« Le vocabulaire est un riche pâturage de mots. »
- HOMÈRE


Avatar
Geo

C'est Macros au pluriel dans 'Organiser'
Abus de langage : les modules ne contiennent pas que LES macros


D'accord pour l'abus

Mais je persiste : pour Word une *procédure* à arguments n'est jamais
listée dans Alt+F8, n'est pas attribuable à un menu, un bouton ou un
raccourci-clavier


Jusque là d'accord. Il existait une astuce quand même pour lancer une
macro avec paramètre dans la commande exécuter, au moins en Excel.
Je mets au passé car il semble qu'en 2007 ça ne marche plus

et n'est donc PAS une macro au sens /macrocommande/
qui est l'étymologie du mot macro.


"macro-instructions" ce qui, de mémoire, était aussi le terme utilisé
par les gens qui programmaient en assembleur.

Tu n'es pas d'accord ?


Je trouve que tu pinailles un peu, même si tes arguments tiennent la
route.

--
A+

Avatar
JièL
Hello Geo

Je trouve que tu pinailles un peu, même si tes arguments tiennent la route.


On ne dit pas "pinailleur" mais "Monsieur à une maitresse"

On ne dit pas non plus "b... en ville" mais "attache case" ;-)

JièL roturier

Avatar
Alain Siksik
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.

Je sens que je vais décliner l'invitation de mon patron à développer ce
genre de truc.

Mais si vous avez une idée, je suis preneur.

A bientôt

Cordialement

Alain
Avatar
Geo

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.


Jusque là ça va.

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 quand 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.


j'ai pas tout compris, mais vous pouvez mémoriser une donnée dans votre
document.
Allez dans les propriétés choisissez utilisateur
Créez une données qui s'appellera comme vous voulez, par exemple :
OhMaJoliePropriétéQuiNyAQueMoiQuiSaitQUeTuEsLa
donnez lui la valeur 3.
Fermez le fichier, ouvrez le et votre propriété est toujours là avec
comme valeur 3
Pour y accéder en VBA il faut utiliser les CustomDocumentProperties.
Dans Word elle est disponible dans un champ
Il y a aussi les variables de document, qu'on peut afficher avec un
champ.
Les propriétés ont l'avantage d'être accessibles dans la fen^tre des
propriétés (ça tombe bien !).

Je sens que je vais décliner l'invitation de mon patron à développer ce
genre de truc.


Allons allons, vous n'allez pas vous arrêter à la première difficulté !

--
A+

Avatar
Jean-Guy Marcil
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
Alain Siksik
Bonjour, et merci de la réponse.



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.


Jusque là ça va.

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 quand 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.


j'ai pas tout compris, mais vous pouvez mémoriser une donnée dans votre
document.
Allez dans les propriétés choisissez utilisateur
Créez une données qui s'appellera comme vous voulez, par exemple :
OhMaJoliePropriétéQuiNyAQueMoiQuiSaitQUeTuEsLa
donnez lui la valeur 3.
Fermez le fichier, ouvrez le et votre propriété est toujours là avec
comme valeur 3
Pour y accéder en VBA il faut utiliser les CustomDocumentProperties.
Dans Word elle est disponible dans un champ
Il y a aussi les variables de document, qu'on peut afficher avec un
champ.
Les propriétés ont l'avantage d'être accessibles dans la fen^tre des
propriétés (ça tombe bien !).

Je sens que je vais décliner l'invitation de mon patron à développer ce
genre de truc.


Allons allons, vous n'allez pas vous arrêter à la première difficulté !
----> Ben si ce n'était que la première, ça irait. Le truc marche bien avec

des commentaires, "mais ça se voit" dicit le Chef!

--
A+






1 2