Créer dynamiquement des Textboxes
J'ai des soucis avec les codes VBA ci-dessous:
1° La valeur saisie dans les Textbox créés dynamiquement dans un formulaire (à chaque click d'un bouton "CommandButton") s'effacent à chaque fois que le Textbox suivant est créé (à chaque click dudit bouton "CommandButton"). En gros, à chaque click les Textbox se vident.
2° Comment faire pour récupérer les valeurs saisies dans les Textbox créés dynamiquement afin de les faire apparaître dans une liste déroulante placée sur une feuille de calcul Excel.
Merci.
Voici le code cité plus haut:
Private Sub CommandButton6_Click()
Dim M As Integer
Dim NomTextBox As Single
Dim nouvelleTextBox As Control
Dim nouveauLabel As Control
Dim nouvelleCheckBox As Control
Dim nouvelleTextBox2 As Control
Dim nouvelleTextBox3 As Control
Dim i As Integer
MajCompteur
M = Range("COMPTEUR_CLICK").Value
For i = 1 To M + 1
Set nouveauLabel = UserForm1.MultiPage2.Pages(2).Controls.Add("forms.Label.1", "ACTIONNAIRE" & i + 4, True)
With nouveauLabel
.Name = "ACTIONNAIRE" & i + 30
.Left = 12
.Top = 408 + i * 42
.Width = 78
.Height = 18
.Caption = "ACTIONNAIRE" & " " & i + 10
.FontBold = True
End With
Set nouvelleTextBox = UserForm1.MultiPage2.Pages(2).Controls.Add("forms.TextBox.1") ' ajout d'une nouvelle TextBox dans le UserForm
With nouvelleTextBox
.Name = "TextBox" & i + 30
.Left = 102
.Top = 402 + i * 42
.Width = 360
.Height = 34.5
.Text = Worksheets("Source Actionnaires").Cells(i, 2)
End With
Set nouvelleCheckBox = UserForm1.MultiPage2.Pages(2).Controls.Add("forms.CheckBox.1") ' ajout d'une nouvelle CheckBox dans le UserForm
With nouvelleCheckBox 'propriétés de la nouvelle CheckBox
.Name = "CheckBox" & i + 30 'nom de la forme : CheckBox x
.Left = 474 'positionnement sur l'axe des abscisses
.Top = 414 + i * 40 'positionnement sur l'axe des ordonnées (seule caractér tique variable dans l'exemple)
.Width = 85.5 'largeur
.Height = 17.25 'hauteur
.Caption = "Personne Morale"
End With
Set nouvelleTextBox2 = UserForm1.MultiPage2.Pages(2).Controls.Add("forms.TextBox.1") ' ajout d'une nouvelle TextBox dans le UserForm
With nouvelleTextBox2 'propriétés de la nouvelle TextBox
.Name = "TextBox" & i + 98 'nom de la forme : TextBox x
.Left = 576 'positionnement sur l'axe des abscisses
.Top = 408 + i * 42 'positionnement sur l'axe des ordonnées (seule caractéristique variable dans l'exemple)
.Width = 144 'largeur
.Height = 20.25 'hauteur
End With
Set nouvelleTextBox3 = UserForm1.MultiPage2.Pages(2).Controls.Add("forms.TextBox.1") ' ajout d'une nouvelle TextBox dans le UserForm
With nouvelleTextBox3 'propriétés de la nouvelle TextBox
.Name = "TextBox" & i + 200 'nom de la forme : TextBox x
.Left = 726 'positionnement sur l'axe des abscisses
.Top = 408 + i * 42 'positionnement sur l'axe des ordonnées (seule caractéristique variable dans l'exemple)
.Width = 144 'largeur
.Height = 20.25 'hauteur
End With
Next i
End SubEn sus, voilà le fichier Excel en question
Bonjour,
Sympathique !!!
Commence par désactiver ça !
Désactiver quoi ? le formulaire ? les macros? ...?
Ya juste à flinguer le Workbook_Open...