Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Abhängige Kriterien aus Liste
15.05.2013 09:57:44
Lutz
Hallo Excel-Profis,
ich finde zwar zu dem Thema abhängige Kriterien viele Lösungen aber keine die mein Problem wenn die Daten in einer tabellarischen Liste stehen.
Ich habe mal ein Beispiel erstellt.
Es gibt in der Tabelle2 eine Liste mit 3 Spalten:
Name Art Bezeichnung
Genau diese Spalten habe ich auch in Tabelle1
Jetzt möchte ich erst "Name" auswählen - das geht noch aber ich bekomme alle Einträge so oft wie es sie gibt.
Wenn Name gewählt ist sollen nur noch die unter "Art" sichtbar sein die dem gewählten Namen entsprechen.
Und das dannn auch noch für die Bezeichnung wenn man Name und Art gewählt hat.
Ich bräuchte das auch nicht nur in Tabelle1 Zeile 1 sondern in Zeile 1-20, d.h. die Funktionalität müßte kopierbar sein.
https://www.herber.de/bbs/user/85333.xlsx
Weiß jemand wie man das realisieren kann?
Vielen Dank für Eure Hilfe und viele Grüße Lutz

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abhängige Kriterien aus Liste
15.05.2013 10:08:44
Klaus
Hallo Lutz,
Weiß jemand wie man das realisieren kann?
ja - sehr aufwendig. Mit dutzenden von Hilfsspalten und ellenlangen Matrixformeln, Bereich.Verschieben und INDEX in diversen Namensvergaben. Am Ende ist das riesengroß und kaum funktional.
Gegenvorschlag:
Leg doch in Tabelle2!A1:C1 einen Autofilter. Jetzt kannst du mit Excel-Boardmitteln erst nach A, dann nach B und dann nach C Filtern (der Autofilter macht ja schon genau das, was du programmieren möchtest).
Die Ergebniss-Zeile einfach kopieren und einfügen nach Tabelle1, oder ein Mini-Makro schreiben welches das erledigt.
Grüße,
Klaus M.vdT.

Anzeige
AW: Abhängige Kriterien aus Liste
15.05.2013 10:16:07
Lutz
Hallo Klaus,
vielen Dank für die Info - schade ich dachte das wäre relativ einfach.
Aber bei Herber sind ja viele Cracks unterwegs und die Anforderung ist sicher nicht so ungewöhnlich?
Vielleicht hat jemand eine Beispieldatei die ich dann nur anpassen muss?
Viele Grüße Lutz

AW: Abhängige Kriterien aus Liste
15.05.2013 10:25:00
Klaus
Hallo Lutz,
zwei Leute haben dir unabhängig abgeraten, das so umzusetzen wie du es dir vorstellst. Ausserdem haben beide den "Autofilter" als Alternative vorgeschlagen. Eine fixe Lösung mit VBA dazu schreibe ich dir gerne. Zb so: In der Zeile doppelclicken, Sprung zur Autofilter-Tabelle. Filtern, Filtern, Filtern. Gefundene Zeile doppelclicken, auto-copy in Tabelle1 passiert.
Aber du hälst an deiner Lösungsidee fest? Naja, Konsequenz heisst manchmal eben, auch Holzwege bis zum Ende zu gehen.
Du schriebst, du hattest schon gegoogelt. Dann kennst du diese Links bestimmt schon:
Bedingte Gültigkeiten gehen prinzipiell so:
http://www.excelformeln.de/tips.html?welcher=84
Duplikate VBA-Frei ausfiltern geht prinzipiell so:
http://www.excelformeln.de/formeln.html?welcher=194
Jetzt noch eine Menge Denkarbeit, um das auf deine spezielle Tabellenform umzubasteln. Du wirst pro Spalte mindestens zwei Hilfsspalten brauchen, warscheinlich mehr.
Das ganze ist aber (für mich zumindest) keine interessante und spannende Aufgabe, sondern reine Fleißarbeit. Die musst du selber erledigen, das mache ich nicht für dich. Sorry.
Grüße,
Klaus M.vdT.
Ich lasse mal offen, vielleicht hat ja einer der "Cracks" die Muße, sich dem hinzugeben.

Anzeige
AW: Abhängige Kriterien aus Liste
15.05.2013 10:59:51
Lutz
Hallo Klaus,
vielen Dank für Deine Mühe und Erklärung.
Wenn es wirklich so viel Aufwand ist kann ich natürlich auch mit einer praktikablen Lösung leben...
Wenn ich jetzt in den Bereich D5:D10 eine Nummer eintragen muß, wie würde dann das Makro aussehen?
Ablauf:
Zelle D5:D10 Doppelklick - und Focus geht in die Tabelle2 Zeile 1
Filter, Filtern, Filtern
Doppelklick auf die Zelle die übernommen werden soll
Makro springt in die Zelle aus D5:D10 von der aus man den Doppelklick gemacht hat und trägt den Wert dort ein
Ist das mit wenig Aufwand machbar?
Vielen Dank und viele Grüße Lutz

Anzeige
AW: Abhängige Kriterien aus Liste
15.05.2013 11:16:53
Klaus
Ist das mit wenig Aufwand machbar?
ja, sind nur ein paar Zeilen Code.
https://www.herber.de/bbs/user/85335.xlsm
Zellenbezüge, Tabellenblattnamen usw musst du anpassen. Reicht dein "VBA-bescheiden" für den Code aus, oder soll ich den nochmal durchkommentieren?
Grüße,
Klaus M.vdT.

AW: Abhängige Kriterien aus Liste
15.05.2013 11:40:03
Lutz
Hallo Klaus,
wunderbar, den Rest schaffe ich auch mit VBA Bescheiden - an den wichtigen Stellen steht ja eine Erläuterung drin.
Noch mal vielen lieben Dank, das hat mir sehr geholfen.
Viele Grüße Lutz

Anzeige
Danke für die Rückmeldung! owT.
15.05.2013 11:55:44
Klaus
.

und filtern ? ...
15.05.2013 10:13:58
Matthias
Hallo
Warum filterst Du denn nicht
Tabelle2

 ABC
1NameArtBezeichnung
7EuropaDText6
8EuropaDText7
10EuropaDText9


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: und filtern ? ...
15.05.2013 10:17:32
Lutz
Hallo Matthias,
leider muß ich das in einem Formular verwenden und nicht in der Liste in der die Einträge stehen...
Vielen Dank und viele Grüße Lutz

also VBA und Du meinst Userform? oT
15.05.2013 10:28:00
Matthias

AW: also VBA und Du meinst Userform? oT
15.05.2013 10:51:00
Lutz
Hallo Matthias,
nein, das Formular ist nur ein anderes Tabellenblatt als das in dem die Liste mit den ganzen Daten steht - und das hat eben ein bestimmtes Layout.
Gruß Lutz

AW: Abhängige Kriterien aus Liste
15.05.2013 11:48:15
Rudi
Hallo,
alternativ kann man auch die Gültigkeit per VBA setzen. Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Row > 1 Then Select Case Target.Column Case 1 SetValidation Target, getArr_A Case 2 If Target.Offset(, -1) "" Then SetValidation Target, getArr_B(Target.Offset(, -1)) End If Case 3 If Target.Offset(, -1) "" And Target.Offset(, -2) "" Then SetValidation Target, getArr_C(Target.Offset(, -2), Target.Offset(, -1)) End If End Select End If End Sub Function getArr_A() Dim objArr As Object, arrTmp, i As Long Set objArr = CreateObject("Scripting.dictionary") With Sheets(2) arrTmp = .Cells(1, 1).CurrentRegion For i = 2 To UBound(arrTmp) objArr(arrTmp(i, 1)) = 0 Next End With getArr_A = objArr.keys End Function Function getArr_B(sMatchA As String) Dim objArr As Object, arrTmp, i As Long Set objArr = CreateObject("Scripting.dictionary") With Sheets(2) arrTmp = .Cells(1, 1).CurrentRegion For i = 2 To UBound(arrTmp) If arrTmp(i, 1) = sMatchA Then objArr(arrTmp(i, 2)) = 0 End If Next End With getArr_B = objArr.keys End Function Function getArr_C(sMatchA As String, sMatchB As String) Dim objArr As Object, arrTmp, i As Long Set objArr = CreateObject("Scripting.dictionary") With Sheets(2) arrTmp = .Cells(1, 1).CurrentRegion For i = 2 To UBound(arrTmp) If arrTmp(i, 1) = sMatchA And arrTmp(i, 2) = sMatchB Then objArr(arrTmp(i, 3)) = 0 End If Next End With getArr_C = objArr.keys End Function Sub SetValidation(rng As Range, arr) With rng.Validation .Delete .Add _ Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:=Join(arr, ",") .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub
Gruß
Rudi

Anzeige
AW: Abhängige Kriterien aus Liste
15.05.2013 15:37:53
Klaus
Hallo Rudi,
das ist eine sehr schöne und elegante Lösung, noch dazu sehr anwenderfreundlich! Ich glaube aber, Lutz hat sich davon gemacht und liest hier nicht mehr mit - schade für ihn.
Grüße,
Klaus M.vdT.

hat er eben Pech
15.05.2013 15:55:31
Rudi
Hallo,
das ist eine sehr schöne und elegante Lösung, noch dazu sehr anwenderfreundlich
und schnell obendrein.
Auch 2000 Datensätze in der Quelle merkt man nicht.
Nebenbei könnte man auch noch per Change-Event die rechts liegende(n) Zelle(n) leeren und den Focus drauf setzen.
Gruß
Rudi

AW: hat er eben Pech
15.05.2013 16:05:04
Lutz
Hallo Rudi,
ich war nur mal kurz beschäftigt...
Bekomme aber jede Mail zu dem Thema.
Den Code habe ich gesehen - nur reicht dazu mein Makro Verständnis wohl nich aus. Könntest Du den in meine Beispielmappe bringen so dass die Auswahl funktioniert oder wäre das viel Aufwand.
Was muß ich denn da machen?
Das sind ja Funktionen - oder?
Viele Grüße und vielen Dank für die Hilfe Lutz

Anzeige
AW: hat er eben Pech
16.05.2013 08:49:34
Rudi
Hallo,
Mappe geht nicht.
In das Klassenmodul der Tabelle (Rechtsklick auf Reiter-Code anzeigen):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 And Target.Row > 1 Then
Select Case Target.Column
Case 1
SetValidation Target, getArr_A
Case 2
If Target.Offset(, -1)  "" Then
SetValidation Target, getArr_B(Target.Offset(, -1))
End If
Case 3
If Target.Offset(, -1)  "" And Target.Offset(, -2)  "" Then
SetValidation Target, getArr_C(Target.Offset(, -2), Target.Offset(, -1))
End If
End Select
End If
End Sub
Den Rest in ein normales Modul.
Gruß
Rudi

Anzeige
AW: hat er eben Pech
16.05.2013 09:11:00
Lutz
Hallo Rudi,
das bekomme ich hin.
Mir ist nur nicht klar wie der Rest geht.
Was trage ich in die Auswahlfelder ein?
Wo kommt die Function getArr rein?
Ich fürchte der Ablauf was ich wo tun muß ist mir nicht klar...
Sorry und vielen Dank schon mal, viele Grüße Lutz

AW: hat er eben Pech
16.05.2013 09:27:31
Lutz
Hallo Rudi,
hat sich erledigt - ich habe einfach mal die Makros in meine Mappe kopiert und der Rest geht von alleine!!
Ich muß das mal etwas durchdringen wie das geht - aber es geht wirklich gut.
Tino hatte mir auch eine schöne Lösung geschickt - ich kann in jedem Fall beides sehr gut nutzen und gebrauchen.
Vielen lieben Dank für Deine Mühe und noch schöne Pfingsttage.
Viele Grüße Lutz

Anzeige
dann viel Spaß damit. owT
16.05.2013 10:10:37
Rudi

Spezialfilter und ein wenig VBA
16.05.2013 09:12:41
Tino
Hallo,
habe hier mal was eingebaut.
Ich verwende den Spezialfilter und ein wenig VBA.
In der Datei ist eine Hilfstabelle (Tabelle3) eingebaut, diese ist ausgeblendet.
https://www.herber.de/bbs/user/85348.xlsm
Gruß Tino

AW: Spezialfilter und ein wenig VBA
16.05.2013 09:25:07
Lutz
Hallo Tino,
toll das ist echt genial - vor allem das ich nach jeder Wahl unten die sehe die noch übrig bleiben erleichter mir die Arbeit wahnsinnig!!!
Ich habe mir die Ausgabe von A9:Cxxx auf G1:Hxxx gelegt dann klappt das für mich optimal (das habe ich sogar alleine geschafft!!!).
Noch mal vielen herzlichen Dank und ein schönes Pfingswochenende
Viele Grüße Lutz

AW: Spezialfilter und ein wenig VBA
16.05.2013 11:17:42
Tino
Hallo,
wenn sich die Liste Namen automatisch aktualisieren soll,
stell diesen Code in die Tabelle2 ein.
Private Sub Worksheet_Deactivate()
Call Liste_Name
End Sub
Wenn Du nun die Tabelle2 verlässt, wird die Liste Name neu generiert.
Für den Ausgabebereich/Eingabebereich habe ich noch Namen eingebaut.
Soll der Eingabebereich wo anders sein,
den Bereich (im Bsp. A1:C2) ausschneiden und an beliebiger stelle einfügen.
Soll die Liste wo anders erstellt werden,
einfach die Überschrift Ausschneiden (im Bsp. G1:I1) und an beliebiger stelle wieder einfügen.
https://www.herber.de/bbs/user/85356.xlsm
Gruß Tino

AW: Spezialfilter und ein wenig VBA
16.05.2013 11:28:52
Lutz
Hallo Tino,
das wird ja immer besser...
Vielen lieben Dank und noch einen schönen Tag für Dich
Viele Grüße Lutz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige