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

XL 2016 Passer un label en paramètre à une macro

TooFatBoy

XLDnaute Barbatruc
Bonjour,

J'ai un UserForm avec plusieurs labels.
Et j'ai une macro dont le but est de mettre un label en gras.

Je voudrais pouvoir indiquer à ladite macro quel label mettre en gras.
Comment faire ?

La macro que j'essaye d'utiliser :
VB:
Sub MiseEnGras(Lab As Label)
    Lab.Font.Bold = True
End Sub

Quand j'essaye de passer un label en paramètre
Call MiseEnGras(UserForm1.Frame1.Label1)
j'ai une erreur au moment de l'appel de la macro : incompatibilité de type.
 

TooFatBoy

XLDnaute Barbatruc
Essaie comme ça :
Code:
Sub MiseEnGras(Lab As Control)
    Lab.Font.Bold = True
End Sub
puis :
Ca marche avec Control à la place de Label. Merci !

Call MiseEnGras(Label1) mais pourquoi pas directement : Label1.Font.Bold = True ?
J'ai simplifié. Ma question n'est là que pour avoir le principe de fonctionnement.
Tu te doutes bien que ma vraie macro fait deux ou trois trucs en plus.
 

Dranreb

XLDnaute Barbatruc
En tout cas le fait de préciser la bibliothèque garantit qu'il considère bien un type d'objet défini par celle ci et non un avatar d'une autre comme Excel avec ses anciens contrôles de formulaire, même masqué parfois dans l'explorateur d'objets …
ByVal laisse au compilateur l'occasion d'extraire ce qui est demandé de ce qui est spécifié si ça y figure, on se fiche du contenant d'origine. ByVal revient en effet à stipuler qu'on n'en a pas besoin car on n'a pas l'intention de le modifier. Avec l'assumé ByRef il est coincé: il doit absolument fournir l'adresse d'une zone qui contient l'adresse de l'exemplaire, alors il faut qu'elle soit rigoureusement du même type, sinon vous avez l'erreur de compilation Type d'argument ByRef Incompatible. En plus il n'a pas le droit d'exposer une expression à la possible modification par un Set effectué dans la procédure, il est de toute façon obligé d'en fabriquer une copie. Alors une copie de quoi ? La procédure demande un type d'objet et l'appelant en spécifie un autre, il ne sait plus quoi faire !
 
Dernière édition:

Discussions similaires

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