Herbers Excel-Forum - das Archiv
Listenfeld - Bezug auf andere Tabelle
Betrifft: Listenfeld - Bezug auf andere Tabelle
von: Reservist
Geschrieben am: 06.10.2003 21:20:27
Hallo Excler,
wiedermal ein Problem für mich.
In Tabelle '0' benötige ich ein Listenfeld mit Wert
aus Tabelle 'Adressen' (gleiche Mappe) D$2$:D$2000$,
wobei leere Felder ignoriert werden müssen.
Leider lässt Excel bei der eingebauten Gültigkeitprüfung
den Bezug auf eine andere Tabelle nicht zu.
Wie kann ich dies lösen ?
Gruß
Thorsten
Betrifft: AW: Listenfeld - Bezug auf andere Tabelle
von: Matthias G
Geschrieben am: 06.10.2003 22:27:22
Hallo Thorsten,
Der Bezug auf andere Tabellen funktioniert, wenn du dem Bereich einen Namen gibst.
Wenn du auf deiner langen Liste nur belegte Zellen in der Auswahlliste angezeigt bekommen willst, musst Du VBA benutzen.
Folgender Code prüft alle Zellen im Bereich (hier: $D$2:$D$2000) und listet nichtleere Felder untereinander in einer Hilfsspalte auf. Dem Bereich in der Hilfsspalte wird dann der Name "Liste" zugewiesen.
Option Explicit
Public Const Bereich = "$D$2:$D$2000"
Sub UpdateListe()
Const Hilfsspalte = 5 'Spalte E
Dim z
Dim i As Long
i = 1
Application.EnableEvents = False
For Each z In Range(Bereich)
If z.Value <> "" Then
Cells(i, Hilfsspalte).Value = z.Value
i = i + 1
End If
Next z
Cells(i, Hilfsspalte).Value = ""
Application.EnableEvents = True
ActiveWorkbook.Names.Add Name:="Liste", RefersTo:= _
"=Adressen!" & Range(Cells(1, Hilfsspalte), Cells(i, Hilfsspalte)).Address
End Sub
Bei Daten->Gültigkeit der betreffenden Zelle(n) in Tabelle "0" muss unter Liste der Bereich "=Liste" angegeben werden.
Damit die Liste immer aktuell bleibt, muss sie bei jeder Änderung der Bereichs aktualisiert werden:
(Code im Modul von Tabelle "Adressen":)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range(Bereich), Target) Is Nothing Then Exit Sub
UpdateListe
End Sub
Falls in der Liste Formeln vorkommen, die nicht direkt geändert werden, zusätzlich noch:
Private Sub Worksheet_Calculate()
UpdateListe
End Sub
Ich hoffe, das hilft Dir weiter!
Freue mich auf Deine Rückmeldung!
Gruß,
Matthias
Betrifft: AW: Listenfeld - Bezug auf andere Tabelle
von: Reservist
Geschrieben am: 08.10.2003 09:25:49
Tausend Dank, Siehe bitte
An Matthias G - Reservist 08.10.2003 09:20:19