Beitrag aus dem Excel-Forumsarchiv
Home Zur Übersicht    
Thema: Dropdown aus Gültigkeitsliste mit Pfeil verlassen

Betrifft: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: Judith
Geschrieben am: 10.03.2010 04:13:10

Hallo,
ich muss eine ellenlange Liste mit Datensätzen erstellen in die viele Gültigkeitslisten eingebaut sind.
Dazu habe ich einen Code gefunden bei dem die Gültikeitsliste einer Zelle beim Aktivieren sofort aufklappt.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False
If Not Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
SendKeys ("%{DOWN}")
End If
ErrorHandler:
Application.EnableEvents = True
End Sub


Nun möchte ich noch ergänzen, dass,

-wenn ein Eintrag mit Enter gemacht wurde, die Zelle rechts daneben ausgewählt wird.

- mit den Pfeiltasten links und recht die Zellen zur nächste Zelle gehen kann (ohne Eintrag) ohne vorher mit Escape zu beenden.

- am Ende des Datensatzes (Spalte K) in die nächste Zeile, erste Spalte A gewechselt wird.

Der Makrorecorder zeichet ja nichts auf dazu, oder? Es wäre super, wenn mir jemand helfen könnte, ich klick mir sonst einen Wolf.

Viele Grüße

  

Betrifft: AW: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: fcs
Geschrieben am: 10.03.2010 11:55:02

Hallo Judith,

die Funktion der Pfeiltasten_Links/Rechts innerhalb der Gültigkeits-Drop-Downliste lässt sich meines Wissens nicht ändern.

Die anderen Einstellungen kannst mit den folgenden Anpassungen/Ergänzungen deiner Prozedur erreichen.

Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
  'Bei eingaben in einzelne Zellen rechte Nachbarzelle selektieren
  If Target.Cells.Count = 1 Then
    Target.Offset(0, 1).Select
  End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error GoTo ErrorHandler
  Application.EnableEvents = False
  If Not Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
    SendKeys ("%{DOWN}")
  ElseIf Target.Column > 11 Then
    Cells(Target.Row + 1, 1).Select
  End If
ErrorHandler:
  Application.EnableEvents = True
End Sub



  

Betrifft: AW: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: Martin
Geschrieben am: 10.03.2010 14:15:31

Hallo
Den code könnte ich auch gut gebrauchen...
Wo schreibt man den den hin, damit er wirksam wird?
Unter 'Diese Arbeitsmappe' bewirkt es bei mir nichts...

Danke
Martin


  

Betrifft: AW: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: fcs
Geschrieben am: 10.03.2010 15:45:53

Hallo Martin,

so wie er ist, muss der Code im VBA-Editor unter dem Tabellenblatt eingefügt werden, in dem er wirksamwerden soll.

Wenn in mehreren Blättern die gleichen Ereignisaktionen ausführen willst, dann kannst du unter "DieseArbeitsmappe" die entsprechenden Ereignisprozeduren.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

einsetzen. Wobei "Sh" die Objektvariable für das Blatt ist, in dem das Ereignis stattgefunden hat und "Target" der Zellbereich/die Zelle in dem/der die Änderung/Selektion stattgefunden.

Definiert man Ereignis-Prozeduren sowohl unter dem Tabellenblatt als auch unter "DieseArbeitsmappe" dann muss man beachten, dass die Prozeduren unter dem Tabellenblatt zuerst ausgeführt werden.

Gruß
Franz


  

Betrifft: AW: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: Judith
Geschrieben am: 10.03.2010 19:35:45

Hallo Franz,
vielen Dank für Deine Hilfe, mal sehen, was ich machen kann!

Viele Grüße


  

Betrifft: AW: Dropdown aus Gültigkeitsliste mit Pfeil verlassen
von: Judith
Geschrieben am: 11.03.2010 04:10:12

Hallo Franz, (und auch alle anderen),

ich hab das mit den Leereinträgen jetzt anders gelöst.
Bei näherem Überlegen bin ich drauf gekommen, dass ich ja in meine Listen eine Leerzelle einfügen kann um so mit Enter und ohne einen Eintrag in die nächste Zelle springen kann.

Mir ging es darum, dass ich alle Einträge mit der rechten Hand machen kann.

Die Enter-Taste ist ja gleich über den Pfeilen während Escape links oben auf der Tastatur ist. Die Bequemlichkeit hat wieder mal gesiegt :-)

Also, nochmal vielen Dank für Deine Hilfe!

Viele Grüße