Modifier propriétés d'un frame créé dynamiquement
Résolu
Ein85
Messages postés
32
Statut
Membre
-
Ein85 Messages postés 32 Statut Membre -
Ein85 Messages postés 32 Statut Membre -
Bonjour à tous,
J'ai créé une macro qui permet d'ajouter un frame dans ma feuille Excel. La macro définit également les propriétés de ce frame (nom, texte, emplacement, couleur, etc.).
Le problème est que je reçois un message d'erreur quand j'exécute la macro. Le frame se crée, certaines propriétés sont acceptées et prises en compte mais d'autres sont rejetées et déclenchent l'erreur 438 (Propriété ou méthode non gérée par cet objet).
Voici le code:
Caption, Font.Name, Font.Size, BackColor, BorderStyle at BorderColor renvoient l'erreur lors de mes tests effectués au cas par cas mais Name, Left, Top, Width et Height passent sans problème.
Quelqu'un aurait-il une idée de cette différence de traitement ?
Merci d'avance!
J'ai créé une macro qui permet d'ajouter un frame dans ma feuille Excel. La macro définit également les propriétés de ce frame (nom, texte, emplacement, couleur, etc.).
Le problème est que je reçois un message d'erreur quand j'exécute la macro. Le frame se crée, certaines propriétés sont acceptées et prises en compte mais d'autres sont rejetées et déclenchent l'erreur 438 (Propriété ou méthode non gérée par cet objet).
Voici le code:
Private Sub Validate_Click() 'Bouton qui lance la macro Set Ctl = Worksheets(1).OLEObjects.Add(ClassType:="Forms.Frame.1") 'Crée un Frame With Ctl .Name = "MonFrame1" .Caption = "Test" .Left = 57 .Top = 540 .Width = 300 .Height = 200.25 .Font.Name = "Tahoma" .Font.Size = 8 .BackColor = &H80000005 .BorderStyle = fmBorderStyleSingle .BorderColor = &H80000012 End With End Sub
Caption, Font.Name, Font.Size, BackColor, BorderStyle at BorderColor renvoient l'erreur lors de mes tests effectués au cas par cas mais Name, Left, Top, Width et Height passent sans problème.
Quelqu'un aurait-il une idée de cette différence de traitement ?
Merci d'avance!
A voir également:
- Modifier propriétés d'un frame créé dynamiquement
- Modifier dns - Guide
- Cree un compte google - Guide
- Modifier liste déroulante excel - Guide
- Comment créer un groupe whatsapp - Guide
- Modifier story facebook - Guide
1 réponse
Bonjour,
Normal, les OLEObjects n'ont pas ces propriétés.
Regarde ICI la liste des propriétés disponibles.
Il te faut donc, utiliser la "propriété" Object (l'objet OLE Automation associé à ton OLEObject) pour accéder aux propriétés caption, border etc...
Cela te donne un code comme ceci :
PS : toujours déclarer les variables. C'est une bonne habitude de programmation.
Normal, les OLEObjects n'ont pas ces propriétés.
Regarde ICI la liste des propriétés disponibles.
Il te faut donc, utiliser la "propriété" Object (l'objet OLE Automation associé à ton OLEObject) pour accéder aux propriétés caption, border etc...
Cela te donne un code comme ceci :
Private Sub Validate_Click() Dim Ctl As Object Set Ctl = Worksheets(1).OLEObjects.Add(ClassType:="Forms.Frame.1") 'Crée un Frame With Ctl .Name = "MonFrame1" .Left = 57 .Top = 540 .Width = 300 .Height = 200.25 With .Object .Caption = "Test" .Font.Name = "Tahoma" .Font.Size = 8 .BackColor = &H80000005 .BorderStyle = fmBorderStyleSingle .BorderColor = &H80000012 End With End With End Sub
PS : toujours déclarer les variables. C'est une bonne habitude de programmation.
Ein85
Messages postés
32
Statut
Membre
Merci beaucoup pijaku, ça marche très bien!