Numéro de Label variable

Bonjour à tous,

Je cherche à créer une fonction qui renvoie dans une variable chaîne la propriété ControlTipText des labels d'un formulaire. Les valeurs sont issues d'une autre fonction qui va chercher les infos sur une feuille de calcul.

Si je passe en paramètre le numéro de label avec une variable de type Integer "x" , comment puis-je appeler l'objet dans la fonction pour écrire ensuite:

Label(x).Caption = ...

C'est la syntaxe Label(x) qui n'est pas bonne, comment l'écrire ?

Merci

Vianney

Bonjour,

Fournir le fichier avec son formulaire SVP

A+

Pas simple avec un fichier Professionnel et très lourd...

Ma question n'est-elle pas assez compréhensible ?

Un fichier avec un formulaire contenant des label et le code concerné.

J'espère que ça ira !

Merci bcp

16classeur1.xlsm (14.27 Ko)

Bonjour,

Ça explique pas vraiment ce que tu brocantes, mais au moins on sait maintenant que ton formulaire est un UserForm !

Voir démo.

A+

13labelxx.xlsm (23.08 Ko)

Bonjour vlev31, galopin01,

Pour répondre à la question initiale :

C'est la syntaxe Label(x) qui n'est pas bonne, comment l'écrire ?

a priori :

Me.Controls("Label" & x)

donc selon le classeur, la fonction Function bulleL(lab As Integer) As String s'écrirait :

bulleL = "mon controlTipText personnalisé" & Me.Controls("Label" & lab).Caption & "la suite..."

A+

Merci à vous, ça fonctionne...presque !

En effet ma fonction est dans un module à part de la feuille où je mets toutes les fonctions communes à mes différents formulaires.

Cette fonction est appelée dans chaque formulaire afin de créer des infos bulles sur différents labels.

Si j'utilise la variable Me dans cette fonction j'ai l'erreur "Utilisation incorrecte du mot clé Me". Si je le remplace par un nom de formulaire existant plus de problème. Mais si je le remplace par une variable contenant le nom de mon formulaire actuellement ouvert (monForm=UserForm1.Name) la ligne

bulleL = "mon controlTipText personnalisé" & monForm.Controls("Label" & lab).Caption & "la suite..."

renvoie l'erreur "Qualificateur incorrect" avec curseur sur monForm. En mode pas à pas la variable monForm contient pourtant bien le nom du formulaire.

Une solution ?

Merci

sans savoir exactement comment vous procédez....

Comment est déclarée la variable, comment est-elle passée à la fonction...?

deux solutions possibles qui fonctionnent:

S1

au niveau Userform :

Private Sub UserForm_Initialize()
    Set MonForm = Me
    Label1.ControlTipText = bulleL(1)
    Label2.ControlTipText = bulleL(2)
End Sub

au niveau module :

Public MonForm As UserForm
Function bulleL(lab As Integer) As String
    bulleL = "mon controlTipText personnalisé" & MonForm.Controls("Label" & lab).Caption & "la suite..."
End Function

S2

au niveau Userform :

Private Sub UserForm_Initialize()
   Label1.ControlTipText = bulleL(1, Me)
   Label2.ControlTipText = bulleL(2, Me)
End Sub

au niveau module :

Function bulleL(lab As Integer, MonForm As UserForm) As String
 bulleL = "mon controlTipText personnalisé" & MonForm.Controls("Label" & lab).Caption & "la suite..."
End Function

A+

S1 marche parfaitement, merci AlgoPlus pour cette aide efficace.

Sujet résolu.

Bonne journée.

Rechercher des sujets similaires à "numero label variable"