VBA : Gestion d'évènement Userform dynamique

Bonjour à tous,

Voilà mon probleme, j'ai un Userform que je construis dynamiquement suivant le nombre d'items utilisé dans un onglet Excel ( en fait, je cré un formulaire dynamique ).

Dans ce formulaire, suivant certaines cases cochées, je bloque l'acces à certains TextBox à l'ouverture du Userform ( Initialisation ).

Mon probleme est que si je décoche ces cases, rien ne se passe : NORMAL !!

Je sais qu'on peut gérer ça en statique : Private sub TextBox1_Change ()

Mais comment proceder quand les TextBox sont multiples et que je ne connais pas leur nombre ( création en dynamique ) ??

Merci a tous pour votre aide... et bon week-end si je n'ai pas de réponse avant...
Configuration: Windows XP
Firefox 2.0.0.11

9 réponses

  1. Je viens de trouver réponse à ma question.
    Pour ceux que ca pourrait intéresser :
    https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A
    2
    1. Excellent.

      Tu a perdu u peu de temps avec ces imbéciles qui te répondent sans savoir de quoi ils parlent; mais la solution que tu as trouvée toi-même est excellente, j'aurais répondu la même chose si j'avais lu à temps.

      Il faut en effet "Sub-classer" l'objet créé, dans une classe, déclarer l'évènement, etc. et après ça roule tout seul.

      -AS
      0
    2. @AseghirMais bien sûr ... tu n'as pu eu le temps ... c'est cela ... il faut "Sub_classer" .... mouaarrrffff
      0
  2. faut choisir son identifiant intelligement, n'oublies pas que windows aussi arrive à les distinguer
    0
    1. en vba tu peut écrire des trucs comm

      txtTest & i --> p.ex. txtTest1 si i = 1
      0
      1. Je veux bien croire que c'est vendredi soir mais où t'as fumé ou c'est moi... JE NE COMPRENDS RIEN A CE QUE TU ME DIS.... Laisse tomber !!!!

        Bon week-end
        0
        1. moi, c'est Super Pollem

          et je me demandes si Delphi ne serait pas mieux adapté à tes besoin. là c'est pas un pb d'attacher un event p.ex.
          par contre en vba ce n'est pas possible (à ma connaissance)
          0
          1. bonjour,

            Pour les créer :

            Dim myTextBox As Object
            Dim i As Long

            With UserForm1
            For i = 1 to nbCaseCochee
            set myTextBox = .controls.add("Forms.TextBox.1","le nom du TextBox" & i, true)
            ... < tu mets les propriétés du textbox : myTextBox.Top = ..., la hauteur, largeur etc ...>
            Next i
            End With

            ....

            pour les lire et mettre les données saisies dans les textboxes dans la colonne A de la première feuille du classeur par exemple:

            Dim myTextBox As Object
            Dim i As Long

            With UserForm1
            For i = 1 to nbCaseCochee
            set myTextBox = .controls("le nom du TextBox" & i)
            worksheets("Feuil1").Range("A" & i).Value = myTextBox
            Next i
            End With
            .....

            ;o)

            Polux
            1
            1. Bonjour,
              Je me permets de ressortir ce sujet pour savoir s'il était possible de créer une fonction du type Change() sur un TextBox créé dynamiquemment.
              En statique cela donne :
              Private sub myTextBox_Change ()
              ... [mon code]
              End Sub

              Mais quand est-il du dynamique? Est-ce possible?

              Cordialement,
              Romain.
              0
              1. Bof, Polux31. Ne pas avoir "lu *à* temps" devient dans votre imaginaire, "ne pas avoir eu le temps" ce qui est sémantiquement très différent. Ce qui se lit correctement se conçoit puis s'énonce correctement.
                - AS
                0