VBA Excel OleObject Event LostFocus werkt niet

Status
Niet open voor verdere reacties.

vanzieto

Nieuwe gebruiker
Lid geworden
9 apr 2009
Berichten
1
Hallo,

ik probeer vanuit de code dynamisch oleobjecten te creëren en deze terug te verwijderen wanneer ze de focus verliezen.

Het creëren geeft geen problemen:

Set oleObj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")
oleObj.Left = rIntersect.Left
oleObj.Top = rIntersect.Top
oleObj.Width = rIntersect.Width
oleObj.Height = rIntersect.Height
oleObj.LinkedCell = rIntersect(1, 1).AddressLocal(, , xlA1)

Vervolgens koppel ik het oleObject aan een klasse instantie die de eventhandling enabled:

# klasse definitie cOleObjectEvent

Public WithEvents myObj As OLEObject

Private Sub myObj_LostFocus()
myObj.Delete
End Sub

# koppeling maken

If OleObjEvent Is Nothing Then Set OleObjEvent = New cOleObjectEvent
Set OleObjEvent.myObj = oleObj

oleObj.Activate

Uiteindelijk geeft dit de foutmelding "Object or class does not support the set of events" wanneer ik de koppeling probeer te leggen.

Iemand enig idee hoe dit te omzeilen? Waarom voorzien ze deze event wanneer je hem niet dynamisch kunt gebruiken?

Alvast bedankt....
 
Handiger dan dynamische keuzelijsten in een werkblad zijn userforms om de gebruikersinvoer te reguleren/ondersteunen.

terzijde:
Code:
With ActiveSheet.OLEObjects.Add("Forms.ComboBox.1")
  .Left = rIntersect.Left
  .Top = rIntersect.Top
  .Width = rIntersect.Width
  .Height = rIntersect.Height
  .LinkedCell = rIntersect(1, 1).AddressLocal(, , xlA1)
End With
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan