Je suis face a un soucis qui m’étonne un peu. Je crée dynamiquement des contrôles sur une userform. Je n'ai pas de problèmes particulier pour cela. Jusqu'au moment ou je crée un contrôle Frame dans un autre, ce qui fait planter Excel a l’exécution...
Je joins une copie du fichier sur lequel je travaille. J'ai pris soin de mettre la partie de code qui fait planter le programme en commentaires dans mon code pour vous éviter tout désagrément.
Sur ce fichier on voit trois Frames sur l'userform. On doit rentrer un nombre entier dans la text box le plus a droite dans le frame 1, cliquer sur validate.
Ensuite apparait dans le frame 2 un nombre de controles frame correspondant. Chacun contient deux textBoxes et un bouton de commande. On remplit les infos dans les deux textBoxes:
un mot dans celle de gauche
un nombre dans celle de droite
On clique le bouton de commande avec la flèche correspondant.
Enfin dans le frame 3 apparaissent les informations rentrées dans Frame 2 et idéalement (mais ca ne marche pas !) le nouveau frame qui pose problème et fait bugger Excel.
Quelqu'un a-t-il déjà rencontre ce problème? Est-ce que j'utilise la bonne syntaxe pour créer ce frame?
Re : Creation dynamique d'un Frame dans le Frame d'un Userform
Ça ne va pas me faire défaut si je supprime cette ligne?
De plus ces lignes apparaissent dans le module de l'usf. Mon probleme intervient dans le module de Classe "Classe1". Désolé si ce n’était pas clair. :S
.../...
Dim oFrame As msforms.Frame
Dim oFrame1 As msforms.Frame
Set oFrame = usfNew.Controls.Add("Forms.Frame.1")
With oFrame
.../...
End With
Set oFrame1 = oFrame.Controls.Add("Forms.Frame.1")
With oFrame1
.Top = 34: .Left = 10
End With
.../...
le meilleur moyen de le savoir est de tester, à noter je serais trop te conseiller de rajouter "Option Explicit" sur la première ligne de tous tes modules, ceci oblige à déclarer toutes les variables, cela permet de détecter bien des horreurs...
Re : Creation dynamique d'un Frame dans le Frame d'un Userform
Bonjour a vous,
Merci pour vos réponses. Je ne vois vraiment pas ou se trouve mon erreur. J'ai toujours le même probleme pourtant. Je joins a ce post un fichier très simplifie avec simplement le code qui nous intéresse. En cliquant sur le bouton de commande 1, je dois normalement créer un frame dans le frame de droite (frmParameters). Si vous voulez bien essaye et me dire si ça marche pour vous. Chez moi ça bugge.
Re : Creation dynamique d'un Frame dans le Frame d'un Userform
Bonjour,
plantage également chez moi... par contre je passe avec le code ci-dessous après avoir supprimé et re-créé le "frame" sur leque est déposé le bouton....
Code:
Option Explicit
Private Sub btnEnterParameter1_Click()
Dim obj As Object, ctrl As Control
Set obj = Me.frmParameters
Set ctrl = obj.Controls.Add("Forms.Frame.1")
With ctrl
.Width = 150: .Height = 30
End With
End Sub
A noter, que je n'ais modifié aucune des propriétés de l'objet....