Variablenübergabe zw Sheet und Modul
04.06.2017 16:01:59
Marcus
Ich habe auf einem Arbeitsblatt eine Überwachung, wenn ein bestimmter Zellbereich ausgewählt _ wird.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("k2:k2000")) Is Nothing Then Call _
ComboBoxenBedarfsweiseHinzufuegen
End Sub
Sobald dies geschieht, wird vom Arbeitsblatt aus ein Makro im Modul1 gestartet, was in der aktiven Zelle eine ActiveX Combobox erstellt. Deren Inhalt wird in die Nachbarzelle geschrieben.
Aus der Combobox kann der User - neben einem Mausklick - mit "Tab" oder "Enter" herauskommen. _ Auch dies wird über ein Makro auf dem Arbeitsblatt gesteuert:
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Or KeyCode = vbKeyTab Then GeheZuZelle (gLetzteZellevorCombobox)
End Sub
Jetzt möchte ich aber beim Verlassen mit Tab oder Enter, dass als nächste Zelle, die Zelle ausgewählt wird, die rechts neben dem eben noch verwendeten Eingabefeld liegt.
Ich habe versucht eine globale Public Variable im Modul zu erstellen, doch auf die kann das Arbeitsblatt Makro nicht zugreifen. Eine Variable auf dem Arbeitsblatt kann zwar von meinem Makro mit der Combobox befüllt werden, ist dann aber beim Abruf durch das Makro wieder leer:
Public gLetzteZellevorCombobox As String
Dann habe ich versucht, das obige Makro zum Verlassen der Combobox ein neues Makro aufrufen zu lassen und diesem die Variable der letzten bekannten Zellenaddresse zu übergeben ...
Sub GeheZuZelle(letzteZelle As String)
ActiveSheet.Range("l" & letzteZelle).Select
End Sub
Doch im entscheidenden Moment ist die Variable leer ...
Was mache ich falsch und wie kann ich das Problem lösen?
Danke für eure Hilfe
Marcus