Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler bei .CreateEventProc()

Laufzeitfehler bei .CreateEventProc()
17.12.2007 17:29:00
Reinhard
Hallo Wissende,
in diesem Codesegment (Gesamtcode nachfolgend) kommt der im Segment und Betreff beschriebene Fehler bei
Zei=...

With ThisWorkbook.VBProject.VBComponents("Userform1").CodeModule
'T = Application.VBE.VBComponents("Userform1").CodeModule.CreateEventProc("Click", "cboLw")
'Laufzeitfehler 57017, Ereignisbehandlingsroutine ist ungültig
Zei = .CreateEventProc("Click", "cboLw")
'.InsertLines Zei + 1, "MsgBox ""huhu"""
.InsertLines Zei + 1, "       '''''''"
End With


Grad eben in XL2002 getestet, da kommt auch der gleiche Fehler.
Wie kriege ich den weg?
Danke ^ Gruß
Reinhard


Private Sub UserForm_Initialize()
'Verweis auf MS Vba Extensibility muß gesetzt sein!
Dim N As Byte, T As Control, Zei As Long
Call Laufwerke
With UserForm1
For N = 1 To UBound(Lw)
Set T = UserForm1.Controls.Add("Forms.CheckBox.1", "chkLw" & N, True)
T.Top = 30
T.Left = N * 20
T.Value = True
Set T = UserForm1.Controls.Add("Forms.Label.1", "lblLw" & N, True)
T.Top = 45
T.Left = N * 20 + 3
T.Caption = Left(Lw(N), 1)
Next N
Set T = UserForm1.Controls.Add("Forms.Label.1", "lblLaufwerke", True)
T.Top = 15
T.Width = 150
T.Caption = "Zu durchsuchende Laufwerke auswählen:"
Set T = UserForm1.Controls.Add("Forms.CommandButton.1", "cboLw", True)
T.Top = 30
T.Left = UserForm1.Controls("lblLw" & N - 1).Left + 15
T.Width = 150
T.Height = 30
T.Caption = "Ausgewählte Laufwerke durchsuchen" & Chr(13) & "und Liste erstellen."
'DoEvents
End With
With ThisWorkbook.VBProject.VBComponents("Userform1").CodeModule
'T = Application.VBE.VBComponents("Userform1").CodeModule.CreateEventProc("Click", "cboLw")
'Laufzeitfehler 57017, Ereignisbehandlingsroutine ist ungültig
Zei = .CreateEventProc("Click", "cboLw")
'.InsertLines Zei + 1, "MsgBox ""huhu"""
.InsertLines Zei + 1, "       '''''''"
End With
End Sub


12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 18:09:34
Dan
Hi,
nimm das Activate_Ereignis der Userform.
mfg Dan

AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 19:24:00
Reinhard
Hallo Dan,
habe ich ausprobiert, leider gleicher Fehler bei Zei=...

Private Sub UserForm_Activate()
Dim Zei
With ThisWorkbook.VBProject.VBComponents("Userform1").CodeModule
'T = Application.VBE.VBComponents("Userform1").CodeModule.CreateEventProc("Click", "cboLw")
'Laufzeitfehler 57017, Ereignisbehandlingsroutine ist ungültig
Zei = .CreateEventProc("Click", "cboLw")
'.InsertLines Zei + 1, "MsgBox ""huhu"""
.InsertLines Zei + 1, "       '''''''"
End With
End Sub


Danke für das Interesse, andere Ideen wie das zu lösen ist?
Oder eine Idee für einen anderen Ansatz das Problem zu lösen.
Was problemlos funtioniert ist, aufgrund von .CountOfLines und mittels .InsertLines die gewünschte Prozedur für den gerade eben erstellten "cboLw"-Button in das Modul von Userform1 zu schreiben.
Leider wird er nicht ausgeführt wenn man auf "cboLw" klickt.
Von .CreateEventProc() erhoffe ich mir daß a) die Ereignisprozedur Click dafür geschrieben wird und sie b) auch ausgeführt wird wenn man den Knopp klickt.
Letztlich lautet meine Fragestellung, wie kann ich zur Laufzeit in eine leere UF einen CommandButten einbauen und ihm den Ereigniscode für das Click-Ereignis zuweisen.
Gruß
Reinhard

Anzeige
AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 19:30:38
Dan
Hi,
ich hab das aber getestet und es hat funktioniert!
mfg Dan

AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 19:47:56
Reinhard
Hallo Dan,
dann bin ich noch ratloser als vor meiner Anfrage hier.
Eben auf XL2002 getestet, ich bekomme den Fehler:-(
Hier die Datei, interessant ist nur der Code in Tabelle1, der in den Modulen ist nicht relevant.

Die Datei https://www.herber.de/bbs/user/48504.xls wurde aus Datenschutzgründen gelöscht


Gruß
Reinhard

Korrektur
17.12.2007 19:49:19
Reinhard
Hallo Dan,
ich meine natürlich den Code in Userform1, sorry.
Gruß
Reinhard

Anzeige
AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 20:03:00
Dan
Hi,
du verwendest noch immer Initialize statt Activate!
mfg Dan

AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 20:24:00
Dan
Hi,
in der Userform muss die Combobox vorhanden sein!
mfg Dan

AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 20:45:39
Reinhard
Hallo Dan,
sie wird ja in UserForm_Initialize() mittels
Set T = UserForm1.Controls.Add("Forms.CommandButton.1", "cboLw", True)
erzeugt, also ist sie ja im nachfolgenden Code von UserForm_Initialize() oder in UserForm_Activate() schon vorhanden, oder mache ich da schon einen Denkfehler?
Oder soll deine Antwort bedeuten, ich muß den Button cboLw manuell im VB-Editor in die Userform erzeugen und den Ereigniscode eintragen und das geht nicht zur Laufzeit?
Gruß
Reinhard

Anzeige
Sorry, muss passen. oT
17.12.2007 20:56:00
Dan
oT

AW: Laufzeitfehler bei .CreateEventProc()
17.12.2007 21:49:38
K.Rola
Hallo,
ist ein "Gewurstel", erstell das Userform mit allen controls zur Laufzeit und zwar mit Code
in einem Standardmodul, sonst funken die Ereignisse des Userforms dazwischen.
Gruß K.Rola

AW: Laufzeitfehler bei .CreateEventProc()
19.12.2007 17:33:42
Reinhard
Hallo K.Rola,
ich habe das sofort ausprobiert, die Erstellung des Codes im Modul "Userform1" klappt jetzt, danke dir.
Leider ergaben sich neue Probleme, aber die muß ich erstmal genauer ausprobieren um hier gezielt fragen zu können.
Lieben Gruß
Reinhard

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige