Grundsätzlich halte ich nichts von Konstruktionen à la ActiveX-Control-Combo und Listfillrange,
kann es aber nachstellen (Excel 2013).
Tatsächlich "triggert" der absolute, oder benannte Zellbereich jede Änderung an das Change-
oder Click-Ereignis des Controls.
Der Laufzeitfehler keimt auf, wenn das zu aktivierende Tabellenblatt schlicht nicht vorhanden.
Workaround - entzerren und überwachen
In ein Code-Modul (hier Modul1)
Option Explicit
Public blnFocus As Boolean
Public Sub Aktiviere(Blattname)
On Error Resume Next
Worksheets(Blattname).Activate
On Error GoTo 0
End Sub
Im Klassenmodul der Tabelle mit dem Control
Option Explicit
Private Sub ComboBox1_Change()
If blnFocus Then Modul1.Aktiviere ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
blnFocus = True
End Sub
Private Sub ComboBox1_LostFocus()
blnFocus = False
End Sub
|