Variable public

dudulleray -  
 dudulleray -
Bonjour a toutes et tous, Forum



J'ai un UserForm baptiser ( Gestion_du_listing ) écrit tel quel.

je vais utiliser un module de classe peut être deux si ça marche je verrai.

Ma question svp:
Je souhaiterai déclarer une variable Public pour mon UserForm afin d'éviter le répètitif du code "UserForm".

j'ai bien essayer ME mais ça marche pas toujours.

Et surtout ou mettre cette variable ( si possible bien entendu ) afin de pouvoir l'utiliser dans tout mon projet.

Merci a vous et de votre temps et merci d'avoir lu mon post.

Bonne fin d'après midi

Cdlt

4 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Les variables Public pour un projet sont a declarer dans un Module.

Bonne suite
0
dudulleray
 
Salut f894009

merci de ta réponse, c'est sympa

Ok bien compris pour ta réponse

Mais pour ma question svp

Je souhaiterai déclarer une variable Public pour mon UserForm afin d'éviter le répètitif du code "UserForm" et pouvoir l'utiliser cette variable dans tous les modules de mon projet

bonne soirée a toi et merci

Cordialement Ray
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Dans un module standard :
Dim UF1 As UserForm
Sub test()
    Set UF1 = UserForm1
    UF1.TextBox1 = "test"
    UserForm1.Show
End Sub 

Mais comme tu vois ça ne marche pas pour les méthodes.
De plus tu vas te priver de l'auto-complétion qui à mon avis est quand même bien pratique.

Tu peux aussi utiliser with.

eric
0
dudulleray
 
Bonjour Eric,

Merci pour ta réponse c'est sympa

je vais essayer ton code tout a l'heure

mais je ne comprends pas trop
ça ne marche pas pour les méthodes
et l'auto-complétion

Si tu peux m'en dire plus quand tu aura le temps bien sur, merci

bonne semaine et bon courage si tu va bosser

cordialement

Raymond
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
ça ne marche pas pour les méthodes
UF1.Show ne marche pas
Il faut saisir UserForm1.Show

et l'auto-complétion
Si tu saisis Userform1.t et que tu tapes ctrl+espace, vbe va te proposer les objets du userform qui commencent par t comme Textbox1
Si tu saisis UF1.t suivi de ctrl+espace il ne te les proposera pas. Il faudra que tu connaisses par coeur de la 1ère à la dernière lettre tous les noms de tous les objets et les saisir intégralement.

Les propriétés des objets n'apparaitront pas non plus.
Avec UserForm1.TextBox1.l tu peux avoir .left etc
Avec UF1.TextBox1.l tu n'as rien. A toi de te rappeler toutes les propriétés de tous objets.

Problème que tu n'as pas en utilisant with si tu nommes souvent le userform dans la procédure.

Et si tu prends l'habitude de démarrer les noms d'objets par un préfixe de 3 lettres selon leur type, tu tapes le préfixe (par exemple frm... pour les userform, tbx... pour les textbox) suivi de ctrl+espace et tu as tous les noms de tes objets dans le type qui apparaissent dans la liste.
Saisir un espace ou un . colle celui sélectionné dans le code (ou un double-clic).

A fainéant, fainéant et demi, pour moi le choix est tout fait ;-)

eric
0
dudulleray
 
Salut Eric

Merci pour toutes ces infos, j'ai appris quelque chose ce matin.

Donc pas conseillé de rendre Public mon UserForm (Gestion_du_listing)

Public Gestion_du_listing As UserForm c'est pas bon

With Gestion_du_listing >>> c'est bon ??

Mais dans le cas d'un Module de Classe ou je dois aller souvent dans mon UF
chercher des infos, en copier, ou cliquer sur un objet.

c'est pour ça que je voulais avoir une variable courte déclarer en Public afin d'éviter de taper mille fois Gestion_du_listing

Encore merci pour ces explications

Raymond
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Ben tu tapes Ges suivi de ctrl+espace, et si Gestion_du_listing est le 1er à apparaitre tu tapes "." pour le coller dans le code.
eric
0
dudulleray
 
Re,

Ok bien compris

Merci pour ton aide, je vais faire des essais

Je te souhaite une bone journée et encore merci

Cordialement Raymond
0