création dynamique de controls dans un formulaire

gbinforme

XLDnaute Impliqué
Bonjour à tous,

Afin de pouvoir utiliser ou non un contrôle dans un formulaire,
j'aimerais en fonction du code de traitement pouvoir ajouter un contrôle (textbox par ex),
et cela de façon dynamique en VBA.

Il me semble avoir déjà utilisé ce code mais je ne parviens pas à mettre la main dessus.

En vous remerciant par avance de vos lumières à ce sujet.
 

Spitnolan08

XLDnaute Barbatruc
Re : création dynamique de controls dans un formulaire

Bonjour,

Tu peux effectivement créer un contrôle de façon dynamique en VBA et il y a des posts la dessus; mais tu peux aussi de façon plus simple prévoir dès la conception de ton UF tous les contrôles nécessaires et les rendre actifs et/ou visible lorsque tu en a besoin... via .visible = true/false

Cordialement
 

gbinforme

XLDnaute Impliqué
Re : création dynamique de controls dans un formulaire

bonsoir Spitnolan08, le forum,

Tu peux effectivement créer un contrôle de façon dynamique en VBA et il y a des posts la dessus;

Peut-être effectivement, je n'en doute pas mais les moyens de recherche ne m'ont pas permis de les trouver malgré de nombreuses combinaisons...

La chance ne sourit pas toujours...

mais tu peux aussi de façon plus simple prévoir dès la conception de ton UF tous les contrôles nécessaires et les rendre actifs et/ou visible lorsque tu en a besoin... via .visible = true/false

Là, je connais parfaitement la méthode, mais est-ce bien la question ?

Quand à créer "tous les contrôles nécessaires" dès la conception, je n'ai pas cette prétention car les utilisateurs ont toujours des besoins plus exigeants que prévus.

J'ai retrouvé mon classeur conçu depuis des années et qui continue de fonctionner et si à l'époque tu avais été capable de me dire le nombre de lignes de contrôles nécessaires pour gérer cette gestion boursière tu aurais gagné le gros lot car il a été multiplié par 10 au moins !
avec les contrôles dynamiques le classeur continue de vivre sans souci...

Enfin merci du conseil et, malgré celui-ci, sur ce que je réalise, il n'y aura presque que des contrôles dynamiques et des formulaires dynamiques, afin de laisser aux utilisateurs la liberté de modifier les données selon leurs besoins...

@+
 

Spitnolan08

XLDnaute Barbatruc
Re : création dynamique de controls dans un formulaire

Bonsoir Gbinforme,

Je te trouve bien agressif...:confused: totalement inutilement...:cool:

Mais puisque tu as retrouvé ton fichier miracle : te voila sauvé...:D

Cordialement

Edit : Au fait, excuses moi d'avoir essayé de t'aider...de façon simple.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : création dynamique de controls dans un formulaire

Bonsoir gbinforme, Spitnolan08, le forum


Je me permets cette contribution (dont la pleine paternité m'échappe)

Une création dynamique de userform en VBA

(Pour la beauté du code)

NB: activer dans Références:
Microsoft Visual Basic for Applications Extensibility 5.3
(pour XL 2000)

Code:
Sub MakeForm()
    Dim TempForm As Object ' VBComponent
    Dim FormName As String
    Dim NewButton As MSForms.CommandButton
    Dim TextLocation As Integer
'   ** Additional variable
    Dim X As Integer

    'Locks Excel spreadsheet and speeds up form processing
    Application.VBE.MainWindow.Visible = False
    Application.ScreenUpdating = False
    
'   Create the UserForm
    Set TempForm = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
    
    'Set Properties for TempForm
    With TempForm
        .Properties("Caption") = "Userform à la volée"
        .Properties("Width") = 200
        .Properties("Height") = 100
    End With
    FormName = TempForm.Name

'   Add a CommandButton
    Set NewButton = TempForm.Designer.Controls _
      .Add("forms.CommandButton.1")
    With NewButton
        .Caption = "Veuillez me cliquer, svp"
        .Left = 43
        .Top = 30
        .BackColor = &H80C0FF
        .AutoSize = True
        .Font.Bold = True
    End With
'   Add an event-hander sub for the CommandButton
    With TempForm.CodeModule

'   ** Add/change next 5 lines
'       This code adds the commands/event handlers to the form
        X = .CountOfLines
        .InsertLines X + 1, "Sub CommandButton1_Click()"
        .InsertLines X + 2, "MsgBox ""C'est un message que ce message!"""
        .InsertLines X + 3, "Unload Me"
        .InsertLines X + 4, "End Sub"
    End With

'   Show the form
    VBA.UserForms.Add(FormName).Show
'
'   Delete the form
   ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=TempForm
End Sub

source:c'est là

A+

Staple
 
Dernière édition:

gbinforme

XLDnaute Impliqué
Re : création dynamique de controls dans un formulaire

Bonjour Staple1600, le forum,

Je me permets cette contribution (dont la pleine paternité m'échappe) Une création dynamique de userform en VBA

(Pour la beauté du code)

Merci beaucoup pour ta recherche et surtout son résultat que je vais mettre en lieu sûr car pour retrouver la syntaxe exacte ce n'est pas toujours facile.

C'est vrai que comme je suis allergique à l'anglais même si j'arrive à le déchiffrer, ce n'est pas sur un tel site que je risquait de trouver.

Merci pour cette contribution car je n'avais trouvé que des bribes.
 

Staple1600

XLDnaute Barbatruc
Re : création dynamique de controls dans un formulaire

Bonjour



[HUMOUR]
C'est vrai que comme je suis allergique à l'anglais même si j'arrive à le déchiffrer, ce n'est pas sur un tel site que je risquait de trouver.

Si tu aimes VBA, tu ne dois pas être allergique à l'anglais ou sinon

comment comprendre le code (puisque que le VBA est en anglais)? :rolleyes:

De plus, grâce à VBA, tu peux devenir anglophone

et ainsi comprendre les paroles de chansons de Paris Hilton.
[/HUMOUR]


Sur ce pitoyable trait d'humour, je m'en retourne boire un tit café.


A+

Staple
 

gbinforme

XLDnaute Impliqué
Re : création dynamique de controls dans un formulaire

Bonjour Staple1600, le forum,

De plus, grâce à VBA, tu peux devenir anglophone

et ainsi comprendre les paroles de chansons de Paris Hilton.

Tu tombes pile et c'est une excellente idée !

Le vocabulaire VBA, je m'en accommode mais le premier excel que j'ai eu était en anglais et je peux te dire que l'aide m'en a fait baver pour trouver ce que je cherchais : comprendre parfaitement des paragraphes entiers c'est très long si l'on veux être sûr.

Enfin, j'ai peur que le niveau de raisonnement de cette riche dame ne soit pas à la hauteur du VBA...

Merci pour ce sourire car il manque beaucoup de nos amuseurs ... à mon goût.

@+
 

Discussions similaires

Réponses
17
Affichages
669

Statistiques des forums

Discussions
312 310
Messages
2 087 113
Membres
103 474
dernier inscrit
taha1995