abhängige Dropdowns begrenzt füllen, 1. anzeigen
#1
Hi,

ich habe zwei Dropdowns (hellgrün: C7, E7) über Gültigkeitsprüfung und die zweite hängt von der ersten ab.

Die Datenquelle ist im Bereich W1:AE21.
Datengültigkeit 1: =W1:AE1
Datengültigkeit 2: =INDEX($W$2:$AE$21;;VERGLEICH($C$7;$W$1:$AE$1;))

Der Bereich W2:AE21 ist aber ungleich weit nach unten gefüllt. Beim Aufruf des zweiten Dropdowns werden dann in der Liste die leeren Zellen des Bereichs auch mit angezeigt und da die Auswahlzelle erst mal leer ist, steht das Dropdown ganz unten und ich muß hochscrollen, damit ich was auswählen kann.

Wie kann ich das auf den je Spalte benutzten Bereich beschränken, damit nur die tatsächlich vorhandenen Begriffe zur Auswahl stehen oder in der Auswahl zuerst der oberste Begriff angezeigt wird?

.xlsb   abhängige Gültigkeit.xlsb (Größe: 22,91 KB / Downloads: 9)
Top
#2
Hallo Ralf,

ich habe es mit einer Hilfszelle gelöst, in der ich für jede Spalte die Anzahl der Einträge ermittle und das in der Formel anwende.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#3
Hi Edgar,

dann muß ja die 21 in der Formel durch den Inhalt der Hilfszelle ersetzt werden?

Hast Du mir da ein Beispiel?

Oder die Formeln für die Hilfszelle und die zweite Gültigkeit?
Top
#4
Hi,

ich gebe Dir heute Mittag mal ein Beispiel.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#5
Diese Code reicht:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$C$7" Then
    Application.EnableEvents = False
   
    Range("C8:C24, E7:E24,G8:G18,G19,G21,G23:G24,I6:I15,I16,I18:I20,I23:I24,K6:K15,K17:K24") = ""
    Range("K1:K3") = Application.Transpose(Array(VBA.Environ("Username"), Date, Date + 7))
      
    Cells(7, 5).Validation.Modify , , , "=" & Columns(Application.Match(Target, Range("A1:AE1"), 0)).SpecialCells(2).Address

    Application.EnableEvents = True
  End If
End Sub


Angehängte Dateien
.xlsb   __Rabe 002.xlsb (Größe: 21,64 KB / Downloads: 4)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Top
#6
Hi,

ohne VBA:

Arbeitsblatt mit dem Namen 'Tabelle2'
 HIJKLMN
184      
1934263Gruppe:d
20abcdeArtikel:da
21aabacadaea  
22abbbcbdbeb  
23acbc dcec  
24 bd dd   
25   de   
26   df   

NameBezug
Gruppen=Tabelle2!$H$20:$L$20

ZelleFormel
H18=WENNFEHLER(VERGLEICH(N19;Gruppen;0);"")

ZelleGültigkeitstypOperatorWert1Wert2
N19Liste =Gruppen 
N20Liste =BEREICH.VERSCHIEBEN(H20;1;H18-1;INDEX(H19:L19;H18)) 
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Allerdings geht das so nur mit Bereich.verschieben!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Rabe
Top
#7
Hi,

das hat geklappt, danke!

(23.03.2017, 14:10)snb schrieb: Diese Code reicht:
Code:
    Cells(7, 5).Validation.Modify , , , "=" & Columns(Application.Match(Target, Range("A1:AE1"), 0)).SpecialCells(2).Address

wegen Kosmetik:
Kann ich in der Datengültigkeit auch nur den Bereich der Zeilen 2 bis Ende anzeigen lassen, also ohne die Kopfzeile?
Top
#8
Hi,

geht auch ganz leicht ohne VBA und auch "fast" ohne Formel

http://www.clever-excel-forum.de/thread-...l#pid72586

Datei Drop_V3
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Rabe
Top
#9
Kein Thema:

Code:
Cells(7, 5).Validation.Modify , , , "=" & Columns(Application.Match(Target, Range("A1:AE1"), 0)).SpecialCells(2).offset(1).specialcells(2).Address
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste