1 pièce(s) jointe(s)
TextBox Dynamique dans un MultiPage
Bonjour a tous, et un grand merci à tous ceux qui prendront un peu de temps pour me sortir de ce mauvais pas...
Dans un UserForm, j'ai un Multipage avec une seule page, qui s'incrémente automatiquement du pages supplémentaires en fonction du besoin (3 4 5 6 pages).
Je fais donc une copie de la première page sur laquelle se trouve 4 TextBox que j'arrive bien à remplir grâce à l'évènement Click sur une liste box. Le soucis se situe au niveau des autres pages créées.
Impossible de renommer les TextBox et encore moins de leur attribuer une valeur.
J'ai pas mal cherché, je suis tombé sur pas mal d'explication, mais rien n'y fait.
Je n'arrive pas à les créer sur chaques pages,
J'arrive a créer des textbox sur la première mais impossible de rentrer des valeurs a l'intérieure après par le biais d'une liste box, les textbox ne veulent rien savoir en entrée comme en sortie
HELP .....
Déclarations Générales
Code:
1 2
| Dim Obj As MSForms.MultiPage, Cl1 As Classe2, i As Byte, j As Control
Dim Ctl As MSForms.Control |
Dans UserForm
Code:
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 59 60
| Private Sub UserForm_Initialize()
'Attribue la collection la variable "Collect".
Set Collect = New Collection
End Sub
Private Sub UserForm_Activate()
Dim Pge As Page
Dim NomPage As String
Dim pgCount As Long
Dim Ctrl As Variant
Dim Obj As Control
t = Feuil01.Range("B3:B" & Feuil01.Range("B" & Rows.Count).End(xlUp).Row + 1)
Articles.List = t
'Ajoute une page
derligne = Feuil03.Range("A65536").End(xlUp).Row
For X = 2 To derligne
NomPage = Feuil03.Range("B" & X)
'MultiPage2.Pages.Add (NomPage)
'NomPage = Replace(NomPage, " ", "")
'Get the current count of the pages
pgCount = Me.MultiPage2.Pages.Count
'Add a new page
Me.MultiPage2.Pages.Add (NomPage)
'Slectionne la nouvelle page
Me.MultiPage2.Value = pgCount
NomPage = Replace(NomPage, " ", "")
Dim TxtB As Control
For K = 0 To 3
Set Obj = Me.Controls("MultiPage2")
With Obj.page1 'Je n'arive pas a rendre ceci dynamique pour qu'il s'éxécute sur chaque page créée
Set TxtB = .Add("forms.TextBox.1")
'Set Obj1 = .Add("forms.label.1")
End With
With TxtB
.Name = NomPage & K
.Left = 80 * K + 20
.Top = 70
.Width = 80
.Height = 22
End With
Set Cl1 = New Classe2
Set Cl1.textbox = TxtB
Collect.Add Cl1
Next K
'Me.Height = Me.Height + Obj.Top - 40 'le 30 correspond a .top -10 du +10
Next
Me.MultiPage2.Value = 0
End Sub |
Dans le Module de Classe
Code:
1 2
| Option Explicit
Public WithEvents textbox As MSForms.textbox |
Merci à vous
Je me permet de poser mon fichier ici, au cas ou