Microsoft Excel

Herbers Excel/VBA-Archiv

Aus Listenfeld auf Zelle springen

Betrifft: Aus Listenfeld auf Zelle springen von: Matthias
Geschrieben am: 15.08.2014 16:10:42

Hallo Excel Gemeinde,

ich möchte über ein Dropdown (Gültigkeitsliste) folgendes erreichen:

Wenn ich einen Wert (Nenne sie Kategorie) aus dem Listenfeld auswähle soll Excel in der Spalte A ab Zelle 36 diesen Wert suchen und auf diese Zelle wo der selbe Wert steht, springen. (Die Gültigkeitsliste bezieht sich auf eine andere Tabelle (Daten).

In der Spalte A sind die Kategorien jedoch hat es auch Leere Zellen drin bis zur nächsten Kategorie. Das Listenfeld ist in D10 wo der User zuerst die Kategorie auswählen sollte.

Noch ne Frage: Wo befindet sich das Dropdown im VBA finde es nirgends. Frage weil ich den Namen des Listenfelddropdown (Listbox) nicht finde.

Hoffe ich hab mich verständlich ausgedrückt.

Für einen Tipp wäre ich Euch dankbar.

Liebe Grüsse
Matthias

  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Hajo_Zi
Geschrieben am: 16.08.2014 07:47:33

Hallo Matthias,

benutzt Du Daten Gültigkeit. Steuerelement kann ja nicht sein da nicht klar wo?

GrußformelHomepage


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Beverly
Geschrieben am: 16.08.2014 08:39:49

Hi Matthias,

versuche es mit diesem Code im Codemodul des Tabellenblattes mit der Gültigkeitsliste:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngZelle As Range
   Dim strBereich As String
   Dim strTabelle As String
   If Target.Address(0, 0) = "D10" Then
      strBereich = Mid(Target.Validation.Formula1, InStr(Target.Validation.Formula1, "!") + 1)
      strTabelle = Mid(Left(Target.Validation.Formula1, InStr(Target.Validation.Formula1, "!") - _
 1), 2)
      Set rngZelle = Worksheets(strTabelle).Range(strBereich).Find(Target, lookat:=xlWhole)
      If Not rngZelle Is Nothing Then Application.Goto reference:=rngZelle
   End If
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Matthias
Geschrieben am: 20.08.2014 16:26:34

Hallo Hajo und Karin,

Besten Dank für Eure Antworten.

@Hajo Das Dropdown ist via DATEN - Datenüberprüfung - Liste =Daten!$D2:$D15 gemacht. Das Dropdown befindet sich in der Tabelle Bestellung bei D10.

@Karin Dein Code springt nun auf die Tabelle Daten und zeigt dort dann richtig in der Spalte D die richtige Kategorie. Es sollte aber in der Tabelle Bestellung auf den Eintrag von der Spalte A springen.

Ich habe nun das File hochgeladen für ein besseres Verständnis.

https://www.herber.de/bbs/user/92205.xlsx

Liebe Grüsse

Matthias


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Beverly
Geschrieben am: 20.08.2014 16:42:21

Hi Matthias,

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngZelle As Range
   If Target.Address(0, 0) = "D10" Then
      Set rngZelle = Range("A6:A335").Find(Target, lookat:=xlWhole)
      If Not rngZelle Is Nothing Then Application.Goto reference:=rngZelle
   End If
   Set rngZelle = Nothing
End Sub
Und was soll passieren, wenn der Begriff mehrmals in Spalte A vorkommt?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Matthias
Geschrieben am: 20.08.2014 17:34:38

Hallo Karin,

gute Frage, also das sollte nicht vorkommen, was aber geschehen könnte, dass die Angebote erweitert werden könnten (Also mehr Einträge pro Kategorie, das wiederum gibt eine längere Liste). Ich habe deshalb den Range mal auf 1000 gemacht. Was noch störend ist, dass er die Zeile per Auswahl nun unten anzeigt, cool wäre, wenn Excel die Auswahl zuoberst anzeigt, damit alle anderen Einträge dieser Kategorie unten ersichtlich wären.

Danke vorerst für den Code.

Liebe Grüsse
Matthias


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Beverly
Geschrieben am: 20.08.2014 18:23:23

Hi matthias,

ich nehme an, immer als letztes steht Totalkosten in CHF inkl. MwSt. in Spalte A, gleichgültig, wie lang die Liste ist? Dann kannst du es so lösen:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngZelle As Range
   Dim rngLetzte As Range
   If Target.Address(0, 0) = "D10" Then
      Set rngLetzte = Columns(1).Find("Totalkosten in CHF inkl. MwSt.", lookat:=xlWhole)
      Set rngZelle = Range(Cells(6, 1), Cells(rngLetzte.Row, 1)).Find(Target, lookat:=xlWhole)
      If Not rngZelle Is Nothing Then Application.Goto reference:=rngZelle, scroll:=True
   End If
   Set rngZelle = Nothing
   Set rngLetzte = Nothing
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Aus Listenfeld auf Zelle springen von: Matthias
Geschrieben am: 21.08.2014 09:55:49

Hallo Karin,
wie soll ich Dir danken. Es funktioniert jetzt genau so wie ich mir das vorgestellt habe. Einmal mehr wurde mir in diesem Forum rasch und kompetent geholfen. Vielen Dank.

Liebe Grüsse

Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Aus Listenfeld auf Zelle springen"