Gestion d'evenements de controles ajoutés dynamiquement
ptard
Messages postés27Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention30 septembre 2011
-
5 juil. 2008 à 17:00
ptard
Messages postés27Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention30 septembre 2011
-
5 juil. 2008 à 20:32
Bonjour
Je souhaite creer dynamiquement des textbox sur un document Word et gerer les evenements associés à ces nouveaux controles
La création marche bien, mais j'ai une erreur 13 incompatibilité de type qui se produit sur la ligne de code suivante
Set cl.tb = Obj
J'ai essayé plusieurs types pour la variable Obj mais sans succés
Je demande de l'aide car débutant sur ce type de programmation je pense que je dois faire une GROSSE erreur
Merci
Voici le code
dans un module
------------------------------------------------
Option Explicit
Public cl As Classe1
Public Obj As Variant
Public collect As Collection
dans un module de classe
-----------------------------------------------
Public WithEvents tb As MSForms.TextBox
Private Sub tb_Change()
Stop
End Sub
dans un userform
---------------------------------------------------
Private Sub CommandButton1_Click()
Set collect = New Collection
Set collect = Nothing
Set Obj = ActiveDocument.InlineShapes _
.AddOLEControl(ClassType:="Forms.textBox.1")
'With Obj.OLEFormat.Object
'.Text = "aa"
'.Name = "tt"
'End With
Set cl = New Classe1
Set cl.tb = Obj
collect.Add cl
end sub
A voir également:
Gestion d'evenements de controles ajoutés dynamiquement
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 5 juil. 2008 à 17:29
salut
Public WithEvents tb As MSForms.TextBox
Public Obj As Variant
ta classe attend un objet de type MSForms.TextBox, tu lui en donnes un de type Variant.
çà passe pas ;)
retype ton Obj correctement
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 5 juil. 2008 à 17:31
ps :
Set collect = Nothing
(...)
collect.Add cl
tu ne pourras pas ajouter quoi que ce soit à NOTHING...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 5 juil. 2008 à 18:52
remplace ces 2 lignes :
Set cl.tb = Obj
collect.Add cl
par :
If obj Is Nothing Then
MsgBox "j'essaye d'ajouter
RIEN/NULL"
Else
If TypeOf Obj Is MSForms.TextBox Then
MsgBox "ICI LE SEUL CAS Où LE CODE SERAIT BON
!!!"
Set cl.tb = Obj
'collect.Add cl
Else
MsgBox "J'essaye d'ajouter n'importe quoi : '" & VarType(obj) & "'"
End If
End If
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
ptard
Messages postés27Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention30 septembre 2011 5 juil. 2008 à 19:06
ok Obj c'est n'importe quoi
Alors si le code est mauvais que faut-il ecrire pour parvenir à ajouter ces textbox et gerer leurs evenements ( cela marche quand on les ajoute sur un userform mais je veux les ajouter à un document......)
Merci beaucoup si tu as des idées
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 5 juil. 2008 à 19:26
un objet mais qui n'est pas une textbox
ne faisant pas de VBA je n'ai pas LA solution
(je te l'aurais déjà donné sinon)
l'erreur vient de cette ligne :
Set Obj = ActiveDocument.InlineShapes _
.AddOLEControl(ClassType:="Forms.textBox.1")
objet reçoit ActiveDocument.InlineShapes , vois ce que cette méthode renvoie
(c'était ma question de tout à l'heure ;) )
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp