Variable public

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

  1. Bonjour,

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

    Bonne suite
    0
    1. 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
  2. Contributeur
    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
    1. 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
      1. Contributeur
        ç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
    2. 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
      1. Contributeur
        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
      2. 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