Creation dynamique d'un Frame dans le Frame d'un Userform

MartiFab

XLDnaute Nouveau
Bonjour a tous !

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?
 

Pièces jointes

  • ex2MartiFab1210.xls
    77 KB · Affichages: 114
  • ex2MartiFab1210.xls
    77 KB · Affichages: 102
  • ex2MartiFab1210.xls
    77 KB · Affichages: 107

Pierrot93

XLDnaute Barbatruc
Re : Creation dynamique d'un Frame dans le Frame d'un Userform

Re,

un code comme celui ci-dessous fonctionne chez moi (placé dans l'usf) :
Code:
Private Sub CommandButton1_Click()
Dim ctrl As Control
Set ctrl = Me.Frame1.Controls.Add("forms.frame.1")
ctrl.Caption = "test"
End Sub

pas testé avec ton fichier, mais retire peut être cette ligne dans le module de ton usf :

Code:
Dim btnEnterParameter As CommandButton
bon après midi
@+
 

MartiFab

XLDnaute Nouveau
Re : Creation dynamique d'un Frame dans le Frame d'un Userform

Salut Pierrot,

Merci de ta réponse. J'ai essaye ta façon de faire mais ça ne marche pas. Ça me donne une erreur. Concernant l'instruction
Code:
Dim btnEnterParameter As commandButton

Je l'ai déplacé mais ça ne marche toujours pas.

Je ne vois vraiment pas d’où peut venir le probleme.
 

MartiFab

XLDnaute Nouveau
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
 

klin89

XLDnaute Accro
Re : Creation dynamique d'un Frame dans le Frame d'un Userform

Bonsoir Pierrot, MartiFab

Voir à rajouter ces lignes dans
Private Sub btnEnterParameter_Click()
et à paramétrer les propriétés de tes Frames

VB:
.../...
    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
.../...

Klin89
 

Pierrot93

XLDnaute Barbatruc
Re : Creation dynamique d'un Frame dans le Frame d'un Userform

Re, bonsoir Kjin
Ça ne va pas me faire défaut si je supprime cette ligne?

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...

bonne soirée
@+
 

MartiFab

XLDnaute Nouveau
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.

Merci encore. Bonne journee
 

Pièces jointes

  • exempleFrameMarti.xls
    38 KB · Affichages: 123

Pierrot93

XLDnaute Barbatruc
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....

bon après midi
@+
 

Discussions similaires

Réponses
4
Affichages
432
Réponses
34
Affichages
2 K

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh