DropDown Menue -> Gehe zu Zeile

Bild

Betrifft: DropDown Menue -> Gehe zu Zeile
von: Kulo
Geschrieben am: 11.06.2015 22:27:14

Hallo Zusammen,
ich befasse mich erst seit kurzen mit VBA und bastle immer noch an meiner Tabelle. Eigentlich macht sie alles, was sie soll, aber VBA ist zu interessant, um jetzt "fertig zu sein". ;-)
Mir sind da die Dropdown Felder aufgefallen.
Meine Tabelle hat ziemlich viele Zeilen und sie ist nicht im ganzen am Bildschirm sichtbar. Die Zeilen bestehen zusammen aus mehreren Kategorien, zwischen denen ich immer hin und her scrolle.
Ich dachte mir, es wäre schön, wenn ich auf die momentan sichtbare Kategoriebezeichnung klicken könnte, dann alle Kategorien im Dropdown-Fenster aufklappen und mit Klick auf die entspechende Auswahl die entsprechende Zeile an den oberen Bildschirmrand scrollt. Die Bezeichnung in der Kategoriezeile, in der ich das Menü auswähle, dürfte sich aber nicht ändern, die Spalten sich auch nicht verschieben.
Ich weiß leider überhaupt nicht, wie man an so eine Sache ran geht, geschweige denn, wie man sowas macht.
Wie es aussehen soll schon. Ich hänge mal mein Beispiel ran.
Bitte nicht falsch verstehen: ich möchte nicht, dass mir jemand die Arbeit abnimmt und meine Tabelle programmiert. Das wäre zu viel des Guten. Aber vielleicht könnte mir jemand dabei helfen, welche Themen zu meinem Vorhaben gehören und wie ich an die Sache ran gehen muss.
VielenDank im Voraus und
VG
Kulo

Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Kulo
Geschrieben am: 11.06.2015 22:28:30
Hier die Datei:
https://www.herber.de/bbs/user/98156.xlsm

Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Beverly
Geschrieben am: 12.06.2015 08:05:20
Hi Kulo,
Vorschlag: fixiere die Tabelle in Zeile 2, erstelle eine zusätzliche Gültigkeitszelle in A1 und benutze diese, um die Kategorien auszuwählen. Mit folgendem Code kannst du dann zur ausgewählten Kategorie scrollen:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    If Target.Cells(1).Address = "$A$1" Then
        If Target <> "" Then
            Set rngZelle = Columns(1).Find(Target, lookat:=xlWhole, after:=Target)
            If Not rngZelle Is Nothing Then Application.Goto reference:=rngZelle, scroll:=True
        End If
    End If
End Sub



Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Kulo
Geschrieben am: 12.06.2015 22:00:09
Hallo Karin,
vielen Dank für den Code. Es funktioniert genau so, wie ich es wollte. ;-)
Ich hab es in die Tabelle eingesetzt aber gemerkt, dass es doch nicht so gut zu handhaben ist.
Jetzt habe ich versucht, ein Kombinationsfeld (Formularsteuerelement)in die Tabelle einzubasteln.
Ich habs soweit geschafft, dass ich in Zelle A1 die Position der Auswahl im Dropdown Feld stehen hatte. :-)
Irgendwie hat es aber nie den Eintrag selbst in diese Zelle geschrieben.
Jetzt hatte ich es mit dem Aktive-X Pendant probiert. Ich habe es soweit hinbekommen, dass ich nun den Eintrag selbst nach A1 geschrieben bekam. :-))
Jetzt hatte ich den Code von Dir zwischen die neuen Zeilen "


Private Sub ComboBox1_Change() und End Sub
" eingetragen und glaubte allen Ernstes, dass ich so weiter komme.
Ich hab einiges probiert mit dem Target.Cell (?)usw. - ich raff es nicht. :´-(
Wenn es so funktionieren soll, müsste noch irgendwie beim schreiben nach A1 die Routine aus Deinem Code aufgerufen werden.
Ich hab mir ein zu hohes Ziel gesetzt. Ich find auch nicht wirklich Infos im Netz.
Ich bin ratlos ...
Der Button allerdings würde meiner Tabelle die Krone aufsetzen.
Könntest Du mir da nochmal was zaubern? Ein letztes Gimmik für meine Tabelle?
Ich würde mich sehr freuen.
VG
Kulo
https://www.herber.de/bbs/user/98170.xlsm

Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Beverly
Geschrieben am: 13.06.2015 08:10:32
Hi Kulo,
du hast kein ActiveX-Steuerelement sondern ein Formular-Steuerelement - da gibt es große Unterschiede, d.h. dafür gibt es keine Procedur Private Sub ComboBox1_Change().
Schreibe folgenden Code in ein allgemeines Modul und verknüpfe das Makro dann mit dem Stuerelement:

Sub Scrollen()
    Dim rngZelle As Range
    Dim strSuche As String
    With ActiveSheet.Shapes(Application.Caller)
        strSuche = Range("B196:B203").Cells(.ControlFormat.ListIndex).Value
        Set rngZelle = Columns(1).Find(strSuche, lookat:=xlWhole)
        Application.Goto reference:=rngZelle, Scroll:=True
        Set rngZelle = Nothing
    End With
End Sub

Die Zellverknüpfung in A1 benötigst du nicht, das erledigt der Code anderweitig.



Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Kulo
Geschrieben am: 13.06.2015 09:04:33
Hallo Karin,
wie nicht anders zu erwarten: es funktioniert super.
Vielen Dank dafür. ;-)
Eine letzte Frage noch: Ich möchte VBA verstehen und wissen warum es so funktioniert.
Du hast doch sicher einiges an Lektüre über dieses Thema zu Hause. Kannst Du mir eine Empfehlung geben? Etwas, womit ich in die Materie einsteigen kann, etwas für blutige Anfänger?
Ich wünsche Dir ein schönes Wochenende und
VG
Kulo

Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Beverly
Geschrieben am: 13.06.2015 09:33:45
Hi Kulo,
mit dieser Frage hast du mich auf dem falschen Bein ertappt ;-) - die Literatur, die ich zu Excel habe, ist weniger Lerngrundlage als mehr Nachschlagewerk. Hier mal eine Empfehlung im Internet: http://online-excel.de/




Bild

Betrifft: AW: DropDown Menue -> Gehe zu Zeile
von: Kulo
Geschrieben am: 13.06.2015 09:44:20
Danke Karin und vielen Dank nochmal für all Deine Hilfe.
Meine Tabelle ist jetzt echt ein Schmuckstück geworden. ;-)
Bis später. ;-)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "DropDown Menue -> Gehe zu Zeile"