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

VBA Discussion :

[VBA] Problème d'affichage de Textbox


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Par défaut [VBA] Problème d'affichage de Textbox
    Bonjour,

    Je fais appel à vous car je pense que vous pouvez m'aider à savoir pourquoi le code ci-dessous ne fonctionne pas.

    Le but de cette partie du code est d'afficher des Textbox et des Label en fonction d'une valeur entrée par l'utilisateur.

    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
     
     
    Private Sub TextBox5_Change()
    'Déclaration des variables
    Dim i As Integer
    Dim TextBox, Label As String
     
        'Affiche le formulaire pour récupérer les numéros de ticket ITSM
        If UserForm1.TextBox5.Value > 0 Then
     
            For i = 1 To UserForm1.TextBox5.Value Step 1
                Label = "UserForm2.Label" & CStr(i+1) & ".Visible"
                TextBox = "UserForm2.TextBox" & CStr(i) & ".Visible"
                Label = True
                TextBox = True
            Next i
     
    ...
     
    End Sub
    Donc l'utilisateur entre une valeur dans "UserForm1.Textbox5" et en fonction de cette valeur un autre forme (UserForm2) est chargée. elle doit afficher un nombre de textbox égal à celui de la valeur entrée par l'utilisateur.

    Par exemple : s'il entre la valeur 5 je souaiterai afficher sur l'UserForm2 5 Textbox (et les 5 labels associés)

    Note : le i+1 pour les labels viennent du fait que j'ai les objets suivants :
    Label2 // Textbox1
    Label3 // Textbox2
    ..
    Label6 // Textbox5

    Ca fonctionne avec le code ci-dessous, mais je pense qu'on peut y arriver avec un code plus optimisé.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
        Select Case UserForm1.TextBox5.Value        'Test la valeur de la boite de texte
                Case Is = 1
                    UserForm2.TextBox1.Visible = True
                    UserForm2.Label2.Visible = True
                    UserForm2.TextBox2.Visible = False
                    UserForm2.Label3.Visible = False
                    UserForm2.TextBox3.Visible = False
                    UserForm2.Label4.Visible = False
                    UserForm2.TextBox4.Visible = False
                    UserForm2.Label5.Visible = False
                    UserForm2.TextBox5.Visible = False
                    UserForm2.Label6.Visible = False
                Case Is = 2
                    UserForm2.TextBox1.Visible = True
                    UserForm2.Label2.Visible = True
                    UserForm2.TextBox2.Visible = True
                    UserForm2.Label3.Visible = True
                    UserForm2.TextBox3.Visible = False
                    UserForm2.Label4.Visible = False
                    UserForm2.TextBox4.Visible = False
                    UserForm2.Label5.Visible = False
                    UserForm2.TextBox5.Visible = False
                    UserForm2.Label6.Visible = False
                Case Is = 3
                    UserForm2.TextBox1.Visible = True
                    UserForm2.Label2.Visible = True
                    UserForm2.TextBox2.Visible = True
                    UserForm2.Label3.Visible = True
                    UserForm2.TextBox3.Visible = True
                    UserForm2.Label4.Visible = True
                    UserForm2.TextBox4.Visible = False
                    UserForm2.Label5.Visible = False
                    UserForm2.TextBox5.Visible = False
                    UserForm2.Label6.Visible = False
                Case Is = 4
                    UserForm2.TextBox1.Visible = True
                    UserForm2.Label2.Visible = True
                    UserForm2.TextBox2.Visible = True
                    UserForm2.Label3.Visible = True
                    UserForm2.TextBox3.Visible = True
                    UserForm2.Label4.Visible = True
                    UserForm2.TextBox4.Visible = True
                    UserForm2.Label5.Visible = True
                    UserForm2.TextBox5.Visible = False
                    UserForm2.Label6.Visible = False
                Case Is = 5
                    UserForm2.TextBox1.Visible = True
                    UserForm2.Label2.Visible = True
                    UserForm2.TextBox2.Visible = True
                    UserForm2.Label3.Visible = True
                    UserForm2.TextBox3.Visible = True
                    UserForm2.Label4.Visible = True
                    UserForm2.TextBox4.Visible = True
                    UserForm2.Label5.Visible = True
                    UserForm2.TextBox5.Visible = True
                    UserForm2.Label6.Visible = True
            End Select
    N'hésitez pas à me demander s'il ce n'est pas asser clair, ou si le post n'est pas placé dans la bonne partie du forum.

    Merci à tous,

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    En VBScript il ne peut pas y avoir de TextBox
    Avec quel outil/éditeur programmes tu ?
    Peut être Comment savoir si l'on utilise VBA ou VB6 ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Par défaut
    J'utilise un outil VBA (je me suis trompé ... pardon) : Microsoft Virtual Basic 6.3 qui me permet de créer des formes et d'y intégrer un code.

    Pardon pour l'erreur.

  4. #4
    Membre averti
    Homme Profil pro
    profession libérale
    Inscrit en
    Octobre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : profession libérale
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2011
    Messages : 49
    Par défaut
    Bonjour,
    essaie avec ça :
    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
    Private Sub CommandButton1_Click()
      Dim Obj As Control
      Dim n As Variant
      Dim m As Integer
      'm le nb de textbox voulus (donné dans le textbox1)
      m = TextBox1.Value
      'i le numero de chaque TextBox
       Dim i As Integer
     
     For i = 1 To m  'boucle pour la création des objets textbox
     
        Set Obj = Me.Controls.Add("forms.TextBox.1")
             With Obj
                  .Name = "TextBox" & i
                 .Object.Caption = "le texte" 
                 .Left = 5
                 .Top = 5+ i * (5+20)
                 .Width = 50
                 .Height = 20
             End With
    Next i
     
    End Sub
    Comme il y a plusieurs textbox, il faut faire varier leur position en fonction de leur N°, sans quoi ils vont se superposer. Dans ce code, ils vont s'aligner les uns en-dessous des autres = s'il y en a beaucoup, mieux vaut aussi dimensionner la taille de l'userbox en fonction du nombre et de la taille des textbox (il y a aussi la possibilité de les placer sur plusieurs colonnes : penser à utiliser Mod et \)

Discussions similaires

  1. VBA problème d'affichage
    Par looping0007 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2013, 13h24
  2. [VBA] - Problème affichage Textbox
    Par Jeyjey1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2007, 18h09
  3. [VBA E] Problème de lien entre textbox et cellule
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/06/2006, 08h49
  4. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/02/2006, 12h09
  5. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/02/2006, 11h36

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