Hallo Zusammen,
ich habe ein Dropdownmenüfeld erstellt über das ich verschiedene (nicht alle) Tabellen anwählen kann, funktioniert auch Super.
ABER:
Wähle ich zum Beispiel Tab 24, geht diese auf, allerdings kann ich die Tab nicht erneut anwählen (da passiert nix). Erst wenn ich über das Dropdownmenü eine beliebige andere Tab ausgewählt habe funktioniert der "Sprung" zu Tab 24 auch wieder. Was ist in meiner Anweisung Falsch ???
Private Sub MassenAR_Change()
Dim sht As String
sht = Worksheets("Deckblatt").MassenAR.Value
Worksheets(sht).Activate
End Sub
Vielen Dank für Eure Hilfe
Norbert
Wenn du nochmal den selben Eintrag wählst, dann ändert sich ja nichts, ergo wird auch kein Changeereignis ausgelöst. Ergänze den Code so, dass nach eefolgter Auswahl die Combobox geleert wird. Beachte dabei, dass du dafür mit Application.EnableEvents = False arbeiten musst, sonst löst du wieder ein Changeereignis aus. Danach wieder auf True setzen.
Hallo Berni,
vielen Dank schon mal für die Info. Könntest Du mir bei dem Code helfen, ich bekomme es einfach nicht hin.
Vielen Dank
Norbert
Hallo Norbert,
entschuldige, ich habe vergessen, dir zu antworten. Bittesehr
Code:
Private Sub MassenAR_Change()
Dim sht As String
sht = Worksheets("Deckblatt").MassenAR.Value
Worksheets(sht).Activate
Application.EnableEvents = False
Worksheets("Deckblatt").MassenAR.ClearContents
Application.EnableEvents = True
End Sub
Statt
Code:
Worksheets("Deckblatt").MassenAR.ClearContents
könnte unter Umständen auch
Code:
Worksheets("Deckblatt").MassenAR.Clear
oder
Code:
Worksheets("Deckblatt").MassenAR.Value = ""
passend sein, da ich deine Gegebenheiten nicht kenne.
Hallo Berni,
ist überhaupt kein Problem, ich bin froh wenn mir jemand helfen kann.
Deine Lösung funktioniert fast richtig.
Mit
Worksheets("Deckblatt").MassenAR.Value = ""
oder
Worksheets("Deckblatt").MassenAR.Clear
wechselt excel zur gewünschten Tabelle und lässt sich auch mehrmals anwählen, so wie es sein soll ABER
es kommt immer erst das Visual Basic Fenster mit Laufzeitfehler 9, Index außerhalb des gültigen Bereiches. Ich klicke auf Beenden, die Tabelle ist offen und lässt sich auch wieder auf dem Deckblatt erneut anwählen und die gleiche Meldung kommt wieder. Wie ändere ich das noch ?????
Mit
Worksheets("Deckblatt").MassenAR.ClearContents funktioniert es nicht.
Wenn Du mir hier noch weiterhelfen könntest, wäre Super. Lass Dir ruhig Zeit.
Vielen Dank Norbert
Lade eine Beispielmappe hoch, dann kann ich testen. Sonst wird das ein sinnlos langer Thread.
Hi Berni,
hier die Datei, es handelt sich um die Dropdownfelder auf dem Deckblatt.
Danke
Gruß Norbert
Hallo Norbert,
ich hatte nicht bedacht, dass EnableEvents nicht für Formularsteuerelemente funktioniert. Daher wurde jedesmal mit dem Löschen des Inhalts der Combobox der Code ein zweites Mal ausgeführt. Der Blattname war dann "" (also leer) und damit kann Excel nichts anfangen. Das hat den Fehler verursacht.
Du brauchst eine globale Variable, wie im Beispiel mit "Abbruch" angeführt
Code:
Public Abbruch As Boolean
Private Sub MassenAR_Change()
Dim sht As String
If Abbruch Then
Abbruch = False
Exit Sub
End If
sht = Worksheets("Deckblatt").MassenAR.Value
Worksheets(sht).Activate
Abbruch = True
Worksheets("Deckblatt").MassenAR.Value = ""
End Sub
Das musst du für jede Combobox so machen. Es reicht aber die eine globale Variable, die kannst du immer verwenden.
Hallo Berni,
Vielen Vielen Dank für Deine Mühe hat Super funktioniert.
Gruß Norbert