Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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
Inhaltsverzeichnis

Change event von ComboBox wird beim Starten ausgef

Change event von ComboBox wird beim Starten ausgef
16.03.2016 17:31:13
ComboBox
Hallo,
In meinem VBA Skrip funktioniert alles soweit, bis auf das Starten von der *.xlsm Datei.
Es sieht so aus, als wenn das Change Event der benutzten Combobox noch bevor das Woorkbook_Open Event ausgeführt wird. Und das führt zu einem Fehler.
Auszug aus dem Programm:
Private Sub ComboBox1_Change() 'Transmitter Type
If ComboBox1 = "-" Then
CheckBox35 = False
CheckBox35.Enabled = False
End If
End Sub
Das Problem ist in dem .Enable Befehl.
Fehlermeldung beim Öffnen -> Laufzeitfehler '424': Objekt erforderlich
Wenn ich dem jetzt das komplette Objekt übergebe mit
Private Sub ComboBox1_Change() 'Transmitter Type
If ComboBox1 = "-" Then
Worksheets("RouteCard").CheckBox35 = False
Worksheets("RouteCard").CheckBox35.Enabled = False
End If
End Sub
Nun kommt die Fehlermeldung:
-> Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht
Was ja nicht stimmt, weil wenn das Makro einmal gestartet ist, alles prima klappt.
Was mache ich falsch oder muss ich die Combobox noch irgendwie initialisieren?
Wird beim Starten zuerst der Code verifiziert ohne Werte direkt zu setzen?
Übrigens die Combobox wird mit der Eigenschaft "ListFillRange" auf einen im Namensmanager zugewiesenen Wert gesetzt.
Auch nach längerer Suche im Netzt konnte ich kein ähnliches Problem finden und ich habe jetzt schon sehr viel probiert, aber nichts hat geholfen.
Hat jemand eine Idee?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 14:04:20
ComboBox
Noch einen Nachtrag.
Ich habe festgestellt, dass immer nur das Change Event von dieser ComboBox1 ausgeführt wird, wenn die Excel Liste neu gestartet wird.
Auch eine Änderung in das Click Event bringt keine Verbesserung.
Oder muss irgendwie der Fokus erst auf die Combobox gelegt werden?
Hat keiner eine Idee?

AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 14:30:29
ComboBox
Hi Dennis
Vermutlich geht es den anderen wie mir. Ich verstehe nur Bahnhof. Ich habe es versucht nachzubauen, aber das Problem ist nicht rekonstruierbar.
Eine Beispieldatei könnte helfen...
cu
Chris

AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 15:40:53
ComboBox
Hallo,
ich habe jetzt ein Beispiel erstellt, wo das beschriebene Problem bei mir am Rechner auftritt.
https://www.herber.de/bbs/user/104423.xlsm
Vorgehensweise für den Fehler zu provozieren:
-Excel Liste "104423.xlsm" öffnen
-die "22" in der Zelle bei "Wert" ändern (egal in was z.B. in "11")
-Liste speichern
-Liste wieder öffnen
!!! Laufzeitfehler tritt auf !!!
Ich hoffe, dass ihr jetzt mein Problem nachstellen könnt.
So langsam gehen mit die Ideen aus.
Und nein der Fehler geht nicht weg, wenn ich das Objekt mit Worksheets("Tabelle1") erweitere.

Anzeige
AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 16:15:01
ComboBox
Hi Dennis
OK jetzt sehe ich das Problem. Allerdings ist mir die eigentliche Ursache im Moment auch nicht klar (lasse Frage darum offen).
Zwar nicht die feine englische Art, aber ein "On Error Resume Next" am Anfang vom Code würde Abhilfe schaffen.
cu
Chris

AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 16:20:19
ComboBox
Das ist eine gute Idee, bin ich leider nicht drauf gekommen.
Behebt zwar nicht den Fehler, aber die Liste läuft zumindest an.
Wäre aber trotzdem super, wenn sich für das Problem noch eine Lösung finden würde.

AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 16:21:28
ComboBox
dann müsstest du den Beitrag wieder auf offen stellen...

AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 16:22:53
ComboBox
Hat noch jemand eine Idee?

Anzeige
AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 18:36:00
ComboBox
Hallo,
Du müsstest mit einem booleschen Flag den Event-Durchlauf beim Start verhindern und die Checkboxen über Late Binding als Object zur Laufzeit setzen, dann sollte es ohne On Error Resume Next funktionieren:
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private Sub Workbook_Open()
Call Application.OnTime(EarliestTime:=Now, Procedure:=CodeName & ".prcEnableEvent")
End Sub

Friend Sub prcEnableEvent()
 Tabelle1.prpblnCheckBoxEvent = True
 Call Tabelle1.Init_Boxes
End Sub

' ********************************************************************** 
' Modul: Tabelle1 Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private mblnCheckBoxEvent As Boolean
Private maobjCheckBoxes(1 To 4) As MSForms.CheckBox

Private Sub CheckBox3_Click()
    If CheckBox3 = True Then
        CheckBox4 = False
        CheckBox5 = False
        CheckBox6 = False
    End If
End Sub

Private Sub CheckBox4_Click()
If CheckBox4 = True Then
    CheckBox3 = False
    CheckBox5 = False
    CheckBox6 = False
End If
End Sub

Private Sub CheckBox5_Click()
If CheckBox5 = True Then
    CheckBox3 = False
    CheckBox4 = False
    CheckBox6 = False
End If
End Sub

Private Sub CheckBox6_Click()
If CheckBox6 = True Then
    CheckBox3 = False
    CheckBox4 = False
    CheckBox5 = False
End If
End Sub

Private Sub ComboBox1_Change()
If mblnCheckBoxEvent Then
    If ComboBox1.Value = "-" Then
        maobjCheckBoxes(1).Enabled = False
        maobjCheckBoxes(1).Value = False
        maobjCheckBoxes(2).Enabled = False
        maobjCheckBoxes(2).Value = False
        maobjCheckBoxes(3).Enabled = False
        maobjCheckBoxes(3).Value = False
        maobjCheckBoxes(4).Enabled = False
        maobjCheckBoxes(4).Value = False
    End If
    
    If ComboBox1.Value = "Excalibur 6" Then
        maobjCheckBoxes(1).Enabled = True
        maobjCheckBoxes(1).Value = True
        maobjCheckBoxes(2).Enabled = True
        maobjCheckBoxes(2).Value = False
        maobjCheckBoxes(3).Enabled = True
        maobjCheckBoxes(3).Value = False
        maobjCheckBoxes(4).Enabled = True
        maobjCheckBoxes(4).Value = False
    End If
End If
End Sub

Friend Property Get prpblnCheckBoxEvent() As Boolean
 Let prpblnCheckBoxEvent = mblnCheckBoxEvent
End Property

Friend Property Let prpblnCheckBoxEvent(ByVal pvblnCheckBoxEvent As Boolean)
 Let mblnCheckBoxEvent = pvblnCheckBoxEvent
End Property

Friend Sub Init_Boxes()
  Set maobjCheckBoxes(1) = CheckBox3
  Set maobjCheckBoxes(2) = CheckBox4
  Set maobjCheckBoxes(3) = CheckBox5
  Set maobjCheckBoxes(4) = CheckBox6
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Change event von ComboBox wird beim Starten ausgef
17.03.2016 18:47:43
ComboBox
Hallo,
ahh, geht dann auch ohne booleschen Flag, indem man eines von den Objekten abfragt:
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private Sub Workbook_Open()
Call Application.OnTime(EarliestTime:=Now, Procedure:=CodeName & ".prcEnableEvent")
End Sub

Friend Sub prcEnableEvent()
 Call Tabelle1.Init_Boxes
End Sub

' ********************************************************************** 
' Modul: Tabelle1 Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private maobjCheckBoxes(1 To 4) As MSForms.CheckBox

Private Sub CheckBox3_Click()
    If CheckBox3 = True Then
        CheckBox4 = False
        CheckBox5 = False
        CheckBox6 = False
    End If
End Sub

Private Sub CheckBox4_Click()
If CheckBox4 = True Then
    CheckBox3 = False
    CheckBox5 = False
    CheckBox6 = False
End If
End Sub

Private Sub CheckBox5_Click()
If CheckBox5 = True Then
    CheckBox3 = False
    CheckBox4 = False
    CheckBox6 = False
End If
End Sub

Private Sub CheckBox6_Click()
If CheckBox6 = True Then
    CheckBox3 = False
    CheckBox4 = False
    CheckBox5 = False
End If
End Sub

Private Sub ComboBox1_Change()
If Not maobjCheckBoxes(1) Is Nothing Then
    If ComboBox1.Value = "-" Then
        maobjCheckBoxes(1).Enabled = False
        maobjCheckBoxes(1).Value = False
        maobjCheckBoxes(2).Enabled = False
        maobjCheckBoxes(2).Value = False
        maobjCheckBoxes(3).Enabled = False
        maobjCheckBoxes(3).Value = False
        maobjCheckBoxes(4).Enabled = False
        maobjCheckBoxes(4).Value = False
    End If

    If ComboBox1.Value = "Excalibur 6" Then
        maobjCheckBoxes(1).Enabled = True
        maobjCheckBoxes(1).Value = True
        maobjCheckBoxes(2).Enabled = True
        maobjCheckBoxes(2).Value = False
        maobjCheckBoxes(3).Enabled = True
        maobjCheckBoxes(3).Value = False
        maobjCheckBoxes(4).Enabled = True
        maobjCheckBoxes(4).Value = False
    End If
End If
End Sub

Friend Sub Init_Boxes()
  Set maobjCheckBoxes(1) = CheckBox3
  Set maobjCheckBoxes(2) = CheckBox4
  Set maobjCheckBoxes(3) = CheckBox5
  Set maobjCheckBoxes(4) = CheckBox6
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Change event von ComboBox wird beim Starten ausgef
18.03.2016 08:32:35
ComboBox
So etwas in der Art mit der Start Flag hatte ich auch probiert, aber nicht hin bekommen.
Deine Lösung funktioniert.
Dies jetzt in meine komplette Liste einzubauen (der gepostete File war nur ein Auszug) wird etwas aufwendiger, weil ich mehr wie 100 Checkboxen und etliche Comboboxen habe.
Werde das erst bei der einen Combobox einbauen und hoffen, dass es reicht.
Vielen, vielen Dank für eure Mühe!

195 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige