Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1591 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Supprimer des contrôles dynamiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer des contrôles dynamiquement

n°1802036
Library
Posté le 19-10-2008 à 13:28:57  profilanswer
 

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 :
  1. Private Sub UserForm_Activate()
  2. Dim Top, Left, Width, Height, i As Integer
  3. Dim NumeroTextBox As Integer
  4. Dim TextBoxName As String
  5. For i = 1 To 3
  6.     For Each ctl In add_department.Controls
  7.         If ctl.Name = "Txt" & i Then
  8.             add_department.Controls.Remove (ctl)
  9.             'Set ctl = Nothing
  10.         End If
  11.     Next ctl
  12. Next i
  13. Application.Goto Reference:="departments"
  14. n = Selection.Rows.Count
  15. nb_lines.Caption = n
  16. Top = 10
  17. Left = 10
  18. Width = 100
  19. Height = 20
  20. NumeroTextBox = 1
  21. For i = 1 To n
  22. Set TextBox = Controls.Add("Forms.Textbox.1" )
  23. With TextBox
  24. .Name = "Txt" & i
  25. .Text = Selection.Cells(i, 1)
  26. .Visible = True
  27. .Top = Top 'Definit la distance entre le bord de la fenetre et le bord du conteneur
  28. .Left = Left 'Definit la distance entre le bord gauche de la fenetre et le bord du conteneur
  29. .Width = Width 'Definit la largeur de l'objet
  30. .Height = Height 'Definit la hauteur de l'objet
  31. .Font.Size = 10
  32. End With
  33. Top = Top + 25
  34. Next
  35. Add_line.Top = Top - 25
  36. Cancel.Top = Top
  37. validate.Top = Top
  38. Top = Top + 25
  39. add_department.Height = Top + 25
  40. End Sub


 
Avez-vous une idée ?
 
Merci

mood
Publicité
Posté le 19-10-2008 à 13:28:57  profilanswer
 

n°1802093
dreameddea​th
Posté le 19-10-2008 à 16:12:06  profilanswer
 

Remove ne fonctionne pour les contrôles ajoutés dynamiquement, et fonctionne avec un Identifiant qui peut être soit la position soit un nom
 
Donc c'est

Code :
  1. add_department.Controls.Remove (ctl.Name)


 
Mais je le répète ça ne marchera que si ils ont été créés dynamiquement


Message édité par dreameddeath le 19-10-2008 à 16:12:28
n°1802303
Library
Posté le 20-10-2008 à 12:26:22  profilanswer
 

Merci pour ta réponse.
 
Est-ce que ça ne devrait pas fonctionner pour enlever les contrôles créés par la ligne 29 (set Textbox = control.add...) ?
 
Le problème est que quand je ferme le formulaire et que je le rouvre, les contrôles créés la fois d'avant sont toujours là.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Supprimer des contrôles dynamiquement

 

Sujets relatifs
Evenement Onclick sur des boutons créer dynamiquementModifier une page dynamiquement coté client
gestion des contrôlessupprimer caractère unicode invalide
[VBA] Supprimer un saut de pageMysql supprimer donnes anterieure à une date
inserer et supprimer des lignes dans un fichierpetit pg pour supprimer certaines propriétés d'un fichier son (mp3)
creer un bouton supprimer un noeud et pouvoir modifier le nom du noeudCréer un bouton dynamiquement
Plus de sujets relatifs à : Supprimer des contrôles dynamiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR