Bonjour à tous,
Je m'adresse à nouveau à vous pour une autre question.
Je souhaite avoir dynamiquement une zone de texte par cellule de la plage "Departments".
La partie ajout de contrôles marche très bien, mais par contre, quand je rouvre le formulaire après avoir rajouté des text_box automatiquement, elles restent sur le formulaire.
Je voudrais donc commencer par supprimer toutes les textbox de mon formulaire.
Voici le code que j'ai pour l'instant. Ca bloque sur "add_department.Controls.Remove (ctl)"
Code :
- Private Sub UserForm_Activate()
- Dim Top, Left, Width, Height, i As Integer
- Dim NumeroTextBox As Integer
- Dim TextBoxName As String
- For i = 1 To 3
- For Each ctl In add_department.Controls
- If ctl.Name = "Txt" & i Then
- add_department.Controls.Remove (ctl)
- 'Set ctl = Nothing
- End If
- Next ctl
- Next i
- Application.Goto Reference:="departments"
- n = Selection.Rows.Count
- nb_lines.Caption = n
- Top = 10
- Left = 10
- Width = 100
- Height = 20
- NumeroTextBox = 1
- For i = 1 To n
- Set TextBox = Controls.Add("Forms.Textbox.1" )
- With TextBox
- .Name = "Txt" & i
- .Text = Selection.Cells(i, 1)
- .Visible = True
- .Top = Top 'Definit la distance entre le bord de la fenetre et le bord du conteneur
- .Left = Left 'Definit la distance entre le bord gauche de la fenetre et le bord du conteneur
- .Width = Width 'Definit la largeur de l'objet
- .Height = Height 'Definit la hauteur de l'objet
- .Font.Size = 10
- End With
- Top = Top + 25
- Next
- Add_line.Top = Top - 25
- Cancel.Top = Top
- validate.Top = Top
- Top = Top + 25
- add_department.Height = Top + 25
- End Sub
|
Avez-vous une idée ?
Merci