PDA

Vollständige Version anzeigen : excel gültigket -> liste


daoneprince27
20.02.2008, 10:32
Hallo Leute,

Folgende Problemstellung: In einer Exceltabelle bekomme ich von Access folgende Daten:

KID KName VID VName PID PName
1 KundeA 1 Testversion 1 ProduktA
1 KundeA 2 Liveversion 1 ProduktA
1 KundeA 2 Liveversion 2 ProduktB
2 KundeB 1 Testversion 1 ProduktA
2 KundeB 2 Liveversion 1 ProduktA
3 KundeC 1 Testversion 2 ProduktB

Nun will ich auf einer anderen Tabelle, mittels DropDown-Menü, über die Gültigkeit->Liste (oder. vl gibts eine andere Möglichkeit)
zuerst den Kunden auswählen, wobei der Kundenname nur 1mal vorkommen soll. z.B. DropDown: KundeA, KundeB, KundeC
Danach soll über das 2te Dropdown-Menü die Daten vom gewählten Kunden auswählbar sein (diese auch gruppiert), z.b. man wählt KundeA -> im 2ten. dropdown: Testversion, Liveversion.
im 3ten dann das jeweilige produkt: bei KundeA -> Liveversion -> gibts z.B. zwei Produkte. ProduktA und ProduktB

Zusätzlich sollen die dazugehörige IDs irgendwo dargestellt werden. In dem Fall: 1-2-1

hmm ich hoffe die Aufgabenstellung ist klar :(

jinx
20.02.2008, 11:27
<font size="2" face="Century Gothic">Moin, daoneprince27,

für abhängige DropDowns nach Daten/Gültigkeit müssten die Nachschlagetabellen mit den entsprechenden Namen vorliegen oder aufbereitet werden - ich würde eine Möglichkeit mit VBA und Auto-/Spezialfilter empfehlen, aus der die Daten für die einzelnen Kombinationsfelder aufbereitet werden, wobei bei diesem Vorgehen auch die Änderung eines früheren Dropdowns sich in den späteren Ergebnissen sofort niederschlägt (bzw. die folgenden DropDowns dann einfach ausgeblendet bzw. gelöscht werden).</font>

daoneprince27
20.02.2008, 15:30
hmmm danke, aber wie geht das? :D

jinx
20.02.2008, 16:13
<font size="2" face="Century Gothic">Moin, daoneprince27,

nicht ganz so schnell wie die Frage "aber wie geht das?" stellen.

VBA steht für Visual Basic for Applications, der Programmiersprache, die mit dem Office-Paketen (außer der neuen Version für den MAC) ausgeliefert wird. Damit kann man Aufgaben automatisiseren, die normalerweise ein ganz klein wenig aufwändiger sind.

Dazu sollte aber im Vorwege erst einmal geklärt werden, ob denn die verwendung von VBA zugelassen ist - ansonsten scheitert das schon allein am Veto der IT-Abteilung - egal, wie schnell ich das programmieren könnte... </font>

daoneprince27
21.02.2008, 12:44
tag jinx,

danke für die antwort..
hehe ja ich weiß e was VBA ist.. habs sogar schon verwendet um daten in die Access-DB mittels button zu speichern. =)

nur ich komm nicht drauf wie ich dropdown voneinander abhängig machen soll...

VBA-Einsatz ist zugelassen..

servus..

jinx
21.02.2008, 16:43
<font size="2" face="Century Gothic">Moin, daoneprince27,

okay, dann werde ich mal was schnitzen - kannst Du mir bitte entweder eine Datei mit Testdaten oder eine Zahl der etwa vorhandenen Daten geben? Aufbau immer in der Form, wie im ersten Beitrag angegeben (oder kommen noch mehr Werte in Spalten dazu)?</font>

daoneprince27
22.02.2008, 08:38
hi jinx,

ja aufbau ist gleich wie oben...die daten kommmen aus einer Access-Datenbank wobei ich dort 3 Tabellen hab und zwar Customer, Version und Produkt. und alle 3 stehen m:n in Beziehung durch eine weitere Tabelle CustVersProd(cid, vid, pid) die 3 primärschlüssel von den 3 tabellen stehen hier drin..
und ja die daten lad ich mir dann in excel rüber.
KID KName VID VName PID PName
1 KundeA 1 Testversion 1 ProduktA
1 KundeA 2 Liveversion 1 ProduktA
1 KundeA 2 Liveversion 2 ProduktB
2 KundeB 1 Testversion 1 ProduktA
2 KundeB 2 Liveversion 1 ProduktA
3 KundeC 1 Testversion 2 ProduktB

Danke

jinx
22.02.2008, 14:30
<font size="2" face="Century Gothic">Moin, daoneprince27,

anbei ein erster Ansatz zur Lösung über die Nutzung des Spezialfilters. Die DropDowns bzw. die Listen dafür sind hier per Hand eingefügt worden, ein Wechsel auf der Tabelle2 im Bereich A2:F2 führt den Spezialfilter aus und zeigt dann alle Datensätze an, die mit dem Suchbegriff üebreinstimmen (nur so ist es IMHO ohne große Probleme möglich, auch direkt nach einem Produkt zu suchen und die dies liefernden Anbieter zu erhalten).

Ich habe nur ein Suchkitierum zugelassen, wird im Kriterienbereich nichts ausgewählt, wird automatisch die gesamte Liste im Anzeigebereich ab Zeile 10 angezeigt.

Tabelle 1 ist ausgeblendet und kann per Format/Blatt/Einblenden wieder sichtbar gemacht werden. Tja, und das Select ist drin, weil mir der Cursor unter Excel2000 immer "ausbüchste"... :(

'hinter Tabelle2
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$A$2:$F$2")) Is Nothing Then
SF_Ausführen
End If
End Sub
<hr>
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngCell As Range
If Not Intersect(Target, Range("$A$2:$F$2")) Is Nothing Then
With Application
.EnableEvents = False
For Each rngCell In Range("A2:F2")
If rngCell.Value <> Target Then rngCell.Value = ""
Next rngCell
.EnableEvents = True
End With
SF_Ausführen
Target.Select
End If
End Sub
'Standardmodul
Sub SF_Ausführen()
With Sheets("Tabelle1")
.Range("A1:F" & .Cells(Rows.Count, 1).End(xlUp).Row).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:F2"), _
CopyToRange:=Range("A10:F10"), _
Unique:=False
End With
End Sub
Die Version mit Nutzung von Kombinationsfeldern (sowohl in einer Tabelle als auch auf einer Userform) haben mir beim Durchspielen noch keinen befriedigenden Ansatz geliefert - da muss ich noch auf den Kuss der Muse(n) warten (oder sollte jetzt gerade kein Wetter für Künstler sein? :holy: )</font>