Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Appel Macro avec 0 ou 1 ou ?

  • Initiateur de la discussion schmail
  • Date de début
S

schmail

Guest
Bonsoir les forumers

J'ai trouvé dans certaines de vos macros un 0 ou un 1 derrière un appel de macro... quelle en est la signification exacte et existe-t-il d'autres types de "commutateurs" ?? (Si la liste est trop longue, vous enquiquinez pas , indiquez moi simplement un indice pour trouver la liste sur le net)

D'avance merci.
 
J

jon

Guest
BONJOUR

derrière un appel de macro ? t'es sûr ?
si tu as vu :
call mamacro(0)
ou
run "mamacro",0
alors ce que tu as vu est un passage de paramètres attendu par une procédure


si tu as vu plutôt un 0 derrière une méthode alors c'est la spécification d'un paramètre de la méthode en question

exemple : userform1.show 0
=> le paramètre passé ici est le paramètre modal de laméthode show.
=> Il détermine si la fenêtre est modale ou non, si elle est NON MODALE, l'utilisateur peut prendre la main sur la feuille de calcul tout en gardant à l'affichage le formulaire.
=> il accepte donc deux valeurs, correspondant à deux constantes, que vous pouvez spécifier enutilisant :
----> soit leur valeur numérique
------------> 0 non modale
------------> 1 modale

----> soit leur valeur chaîne
------------> 0 vbmodeless
------------> 1 vbmodal

ainsi userform1.show 0 s'écrit aussi userform1.show vbmodeless

il existe donc pour des valeurs ou des constantes des valeurs numériques et chaînes.

autre exemple
la valeur numérique de true est -1
celle de false est 0 si je ne m'abuse

voilà est-ce ce que tu souhaitais ? est-ce une explication à deux sous ?
moi qui suis entrain de mettre à jour une ou deux de mes pages web, je peux vous assureer que c'est pas forcément facile d'expliquer des choses.



userform1.show 0 = userform1.show vbmodeless
 
S

schmail

Guest
Bonsoir Jon

Ton explication sur les UserForms (modal ou non) est exemplaire, et elle resservira aux utilisateurs d'XL97.

Sur un fil de la journée concernant les barres de menus, il ya 1 classeur ( Test) à télécharger dans lequel un appel de macro (sans call) est accompagné une fois avec 1 (ce qui à l'air de bloquer le démarrage de la macro???) et une fois avec 0 (la macro démarre...).

Je ne comprend pas la subtilité de tels ajouts et donc je posais la question histoire de me coucher moins bête...

Merci Jon et @+

<http://www.excel-downloads.com/html/French/forum/messages/1_31113_31113.htm>
 
S

schmail

Guest
Bonsoir GM

Hé bien ce soir je vais être au point sur le modal ....Mais je viens encore de regarder le fichier concernant les menus d'Xl et je ne vois pas dedans d'appel de Forms mais bien un appel de macro...

Merci et bonne nuit à vous deux
 

Pièces jointes

  • ParametrageXL.zip
    18.5 KB · Affichages: 23
S

schmail

Guest
Re bonne nuit et puis tant que j'y suis bonjour!!!

Je crois que j'ai pigé...En fait la macro appelée possède un caractère optional (w)...

Si on appelle cache_outils 0 je pense que (w) prendra la valeur 0 et les "onglets" de la barre de menu seront invisibles.
Si on appelle cache_outils 1, (w) prendra la valeur 1 et les "onglets" de la barre de menu seront visibles.

Désolé une fois de plus de vous avoir fait mouliner pour rien....
Sorry, Sorry, Sorry, et @+


'-------------------------------------------
' outils de bar invisible
'-------------------------------------------
Private Sub cache_outils(Optional w)

control_view "Worksheet Menu Bar", "Affichage", w
control_view "Worksheet Menu Bar", "Insertion", w
control_view "Worksheet Menu Bar", "Format", w
control_view "Worksheet Menu Bar", "Outils", w
control_view "Worksheet Menu Bar", "Données", w
control_view "Worksheet Menu Bar", "Fenêtre", w

End Sub


Private Sub control_view(bar, control, Optional w)
Dim x As Object
Set x = Application.CommandBars(bar).Controls(control)

If IsMissing(w) Then
x.Visible = Not (x.Visible)
Else
x.Visible = w
End If
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…