Macro et formulaire

chasseur44

XLDnaute Occasionnel
Bonjour le forum
j'ai juste une question et si un lecteur pouvait me mettre sur la piste.
je souhaiterais créer un formulaire assez simple du style X Label et X textBox, est-il possible d'automatiser le nombre de label et de textbox en fonction d'une variable X ?
Merci pour votre aide
 

camarchepas

XLDnaute Barbatruc
Re : Macro et formulaire

Bonjour ,

Oui , c'est surement possible ,

a concurrence de ne plus tenir dans le formulaire,

Pour ne pas faire une usine à gaz juste pour ce faire plaisir

l'idéal est plutot de les prévoir dans le formulaire et de les passer en invisibilté

tous cela géré dans la procédure initialize du formulaire , avec une variable public déclarée dans un module standard précisant le nombre de label textbox (il vont logiquement de paire)

voilà , voilà ,

Bon courage
 

Theze

XLDnaute Occasionnel
Re : Macro et formulaire

Bonjour,

Une piste à adapter :
Code:
Private Sub UserForm_Initialize()
    
    Dim Txt As MSForms.TextBox
    Dim Lbl As MSForms.Label
    Dim NbCtrl As Integer
    Dim I As Integer
    Dim Haut As Integer
    Dim Gauche As Integer
    Dim Largeur As Integer
    Dim Hauteur As Integer
    Dim Espace As Integer
    
    'dimensions des contrôles
    Hauteur = 15
    Largeur = 100
    
    'espace les séparants
    Espace = 10
    
    'nombre de paires de contrôles
    NbCtrl = 10
    
    'initialise le point de départ
    Haut = Espace
    
    'boucle sur le nombre
    For I = 1 To NbCtrl
        
        'création des Labels
        Set Lbl = Me.Controls.Add("Forms.Label.1", "Lbl" & I, True)
        
        'définition de certaines propriétés des Labels
        With Lbl
        
            .Top = Haut
            .Left = Espace
            .Height = Hauteur
            .Width = Largeur
            .Caption = "Label " & I
            .BorderStyle = 1
            .TextAlign = fmTextAlignCenter
            
        End With
        
        'créations des TextBox
        Set Txt = Me.Controls.Add("Forms.TextBox.1", "Txt" & I, True)
        
        'définition de certaines propriétés des TextBox
        With Txt
        
            .Top = Haut
            .Left = Espace + Lbl.Width + Espace
            .Height = Hauteur
            .Width = Largeur
            
        End With
        
        'incrémente
        Haut = Haut + Hauteur + Espace
        
    Next I
    
    'si les contrôles du bas ne sont plus visibles, affiche la barre verticale
    If Haut > Me.Height Then
    
        Me.ScrollBars = fmScrollBarsVertical
        Me.ScrollHeight = Haut
        
    End If
    
End Sub
Si une gestion des évènements des TexBox est nécessaire, il faudra utiliser un module de classe donc, reviens si c'est le cas.

Hervé.
 

Discussions similaires

Réponses
7
Affichages
368

Statistiques des forums

Discussions
312 330
Messages
2 087 336
Membres
103 524
dernier inscrit
Smile1813