1.3k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Guten Morgen allseits!

In einer Zelle (--> mit Namensfeld versehen) wird abhängig von diversen Kriterien ein Datum ermittelt, welches im Anschluss für die Datenüberprüfung Verwendung findet.
Nunmehr möchte ich gerne all jene Zellen markieren/auslesen, die auf dieses Namensfeld zugreifen.

Hat zufällig jemand eine Idee, wie ich den Bezug auflisten könnte?

Ciao

Tom

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

gehe in die betreffende Zelle, wechsele in das Menüband Formeln und wähle dort bei Formelüberwachung den Punkt "Spur zum Nachfolger" aus. Dann werden entsprechrende Pfeile zu den Zellen eingeblendet, die sich auf deine markierte Zelle beziehen.

Gruß

M.O.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo M.O.!

Danke für die Unterstützung, allerdings habe ich keine Formel, die auf ein Namensfeld zugreift, sondern vielmehr ein Problem mit der Datenüberprüfung.

Zwar kann ich alle Zellen pro Blatt (!) mit den bordeigenen Features von MS markieren lassen, jedoch weiss ich dann noch immer nicht, welche Zellen auf das Namensfeld zugreift bzw. muss ich diverse Blätter durchsuchen.

Vielleicht gibt es ja noch einen anderen Ansatz um mein Problem zu lösen.

Erholsames Wochenende!

Tom
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Nachtrag:

Excel kennt ja anscheinend alle Zellen, die auf die gleiche Datenüberprüfung basieren. (--> Änderungen auf alle Zellen mit den gleichen Einstellungen anwenden)
Nunmehr möchte ich genau diese Zellen für alle Blätter auslesen.

Ciao

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

eine Liste für die Gültigkeitsprüfung kannst du wohl nur mit einem Makro erstellen.

Versuch es mal so:

Sub Gueltigkeitlist()

Dim rngZelle As Range
Dim lngzaehler As Long
Dim TargetType As Integer
Dim ws As Worksheet
Dim bvorhanden As Boolean

' Alle vorhandenen Arbeitsblätter durchlaufen
For Each ws In Worksheets
If ws.Name = "Liste Gueltigkeit" Then
bvorhanden = True 'Variable auf wahr setzen
ws.UsedRange.ClearContents 'Inhalt des Arbeitsblatts löschen
Exit For
End If
Next

If bvorhanden = False Then
'Neues Blatt wird am Ende eingefügt
Worksheets.Add After:=Worksheets(Worksheets.Count)
'Neues Blatt benennen
ActiveSheet.Name = "Liste Gueltigkeit"
End If

'Zeilenzähler auf 1 setzen
lngzaehler = 1

'Arbeitsblätter in Mappe durchlaufen
For Each ws In Worksheets
If ws.Name <> "Liste Gueltigkeit" Then

'Alle Zellen im genutzen Bereich durchlaufen
For Each rngZelle In ws.UsedRange

On Error Resume Next 'Fehlerbehandlung aus
TargetType = rngZelle.Validation.Type 'Typ der Gültigkeitsregel merken
On Error GoTo 0 'Fehlerbehandlung wieder ein und Fehlercode löschen

If TargetType = xlValidateList Then 'prüfen, ob Typ 3 (nach Fehler ist Typ 0)

If rngZelle.Validation.InCellDropdown Then
Worksheets("Liste Gueltigkeit").Cells(lngzaehler, 1) = Right(rngZelle.Validation.Formula1, Len(rngZelle.Validation.Formula1) - 1) 'Quelle der Gültigkeitsprüfung
Worksheets("Liste Gueltigkeit").Cells(lngzaehler, 2) = ws.Name & " " & rngZelle.Address 'Adresse der Zelle, in der die Gültigkeitsprüfung steht
lngzaehler = lngzaehler + 1 'Zähler für Zeilen hochsetzen
TargetType = 0 'Variable auf Null setzen
End If
End If

Next rngZelle

End If

Next ws

End Sub


Die Ausgabe erfolgt auf einem seperaten Arbeitsblatt in der Tabelle.

Gruß

M.O.
...