Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
316to320
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
316to320
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listenfeld - Bezug auf andere Tabelle

Listenfeld - Bezug auf andere Tabelle
06.10.2003 21:20:27
Reservist
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenfeld - Bezug auf andere Tabelle
06.10.2003 22:27:22
Matthias G
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
Anzeige
AW: Listenfeld - Bezug auf andere Tabelle
08.10.2003 09:25:49
Reservist
Tausend Dank, Siehe bitte
An Matthias G - Reservist 08.10.2003 09:20:19

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige