IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

tableau de MSForms.TextBox dans un UserForm - Impossible d'accedere à la Valeur [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 21
    Points : 21
    Points
    21
    Par défaut tableau de MSForms.TextBox dans un UserForm - Impossible d'accedere à la Valeur
    Bonjour,

    J'ai un UserForm dans lequel je crée dynamiquement une serie de label et textbox lors de l'initailisation du UserForm, En fonction d'éléments de ma feuille.

    Schématiquement j'ai d'abord cette serie de declarations en tête de code de mon userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Private WithEvents CBt_Valid As MSForms.CommandButton
    Private WithEvents CBt_Cancel As MSForms.CommandButton
    Private NumBox As Integer
    Private TxBx() As MSForms.TextBox
    Private Label() As MSForms.Label

    Ensuite j'ai l'initailisation du USF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    For i = 1 To NumOfTank 'boucle pour la création des Labels et TextBox
     
        Set Label(i) = Me.Controls.Add("forms.label.1")
        With Label(i)
            .Name = "label" & i
            .Caption = Store.Offset(i - 1, 0).Value
     
            .Left = 10
            .Top = (hauteur + 10) * i + 20
            .Width = largeur
            .Height = hauteur
        End With
     
        Set TxBx(i) = Me.Controls.Add("forms.textbox.1")
        With TxBx(i)
            .Name = "TextBox" & i
            If (Store.Offset(i - 1, 1).Value = "") Then
                .Value = 0.98
            Else
                .Value = Store.Offset(i - 1, 1).Value
            End If
            .Left = 15 + largeur + 5
            .Top = (hauteur + 10) * i - 2 + 20
            .Width = 40
            .Height = hauteur + 5
        End With
    Next i

    L'initialisation se passe bien mes labels , textboxs ( avec leurs valeurs) apparaissent.
    Je souhaite ensuite traiter ces valeurs dans la sub_click d'un de mes boutons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CBt_Valid_Click()
     
            MsgBox TxBx(0).Value
     
    End Sub
    Mais j'obtiens le message suivant :

    runtime error '91'
    Object variable or With block variable not set
    c'est à dire que ce qui a été fait sur TxBx() (ReDim, Set, .Value,etc.) ne semble avoir de portée que dans la sub initialize, alors que la declaration est faite en dehors.

    Merci de m'apporter vos lumières en prog VBA

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Je n'ai pas testé, mais de ce que j'ai pu voir, il semblerait que TxBx(0) n'existe pas. En effet, tu débutes ta macro par : i = 1 etc... Set TxBx(i) etc...
    et ensuite tu demandes dans ton messageBox la valeur de TxBx(0)... Or il n'existe pas de TxBx(0) i débutant à 1...
    A voir.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 21
    Points : 21
    Points
    21
    Par défaut
    Mille mercis!!

    Effectivement, il a raison de ne pas être content!
    Merci d'avoir pris le temps de me lire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Aller à la première ligne d'un textbox dans un userform
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2012, 20h32
  2. [XL-2010] Textbox dans un UserForm : les évènements ne se déclenchent pas
    Par St-Jean dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/10/2010, 00h43
  3. Réponses: 7
    Dernier message: 23/08/2010, 23h26
  4. faire apparaitre des textbox dans un userform
    Par petiteabeille64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2008, 18h00
  5. TextBox dans une Userform
    Par jepac dans le forum VBA Word
    Réponses: 3
    Dernier message: 23/01/2008, 01h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo