Anzeige
Archiv - Navigation
1640to1644
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
Inhaltsverzeichnis

Zellen: Verwendung in gesamter Arbeitsmappe

Zellen: Verwendung in gesamter Arbeitsmappe
06.09.2018 11:24:53
Daniel
Hallo zusammen,
ich habe eine komplexere Excel-Arbeitsmappe vorliegen.
Arbeitsblatt 1: diverse Eingabefelder, Auswahllisten, etc.
Arbeitsblatt 2: Aufführung aller möglichen Werte der unterschiedlichen Auswahllisten
Die Bereiche der Werte der Auswahllisten sind jeweils benannt, bspw. A1:A20 als EG_TpO
Nun möchte ich gerne diese ganzen Bereiche prüfen, ob diese in einer Auswahlliste überhaupt noch verwendet wird.
Wie mache ich dies? Die Excel-Board-Mittel, bspw. "Spur" oder die klassische Suche gibt mir nichts zurück. Weder im positiven Fall (EG_TpO wird verwendet) noch EG_xxx wird nicht verwendet.
Hat jemand eine Idee oder Code-Schnippsel, wie ich dies machen kann?
Es gibt etwa 1200 Eingabefelder und darin etwa 200 Auswahllisten (bis Spalte HN). Ein manuelles durchforsten würde einfach zu lange dauern :(
Danke vielmals im Voraus,
Daniel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen in Formeln
06.09.2018 11:34:44
Fennek
Hallo,
wenn "Spur" nicht anwendbar ist, könnte man es mit "suchen: in Formeln" (auch als VBA.Range.Find xlFormulas") versuchen.
mfg
INQUIRE ComAddIn aktivieren! dann Analyse (owT)
06.09.2018 14:47:06
EtoPHG

AW: INQUIRE ComAddIn aktivieren! dann Analyse (owT)
06.09.2018 15:59:26
Daniel
Ich habe jetzt noch ein wenig weiter recherchiert und mir mit VBA ein kleines Skript erstellt, um mir Listen zu generieren, die ich wiederrum dann abgleichen kann.
Für die Dropdown-Felder hier das Skript, falls es jemand noch benötigt:
Private Sub CheckValidation()
Dim ran As String
For i = 1 To 10
For j = 1 To 856
ran = Worksheets("UW-Conclusion").Cells(j, i).Address(RowAbsolute:=False,  _
ColumnAbsolute:=False)
v = 0
On Error Resume Next
v = Worksheets("UW-Conclusion").Cells(j, i).SpecialCells( _
xlCellTypeSameValidation).Count
On Error GoTo 0
If v = 0 Then
Else
' nur Dropdown-Listen ausgeben
If Worksheets("UW-Conclusion").Range(ran).Validation.Type = 3 Then
Debug.Print ran; ";"; Worksheets("UW-Conclusion").Range(ran).Validation. _
Formula1; ";"; Worksheets("UW-Conclusion").Range(ran).Validation.Type
End If
End If
Next j
Next i
End Sub

Anzeige
das meinst du wohl nicht im Ernst, oder?
06.09.2018 16:02:39
EtoPHG
Hallo Daniel,
Als selbsternannter Profi einen solchen Code zu publizieren und zu erwarten, dass er irgendjemanden von Nutzen sein kann, finde ich mehr als grenzwertig.
Gruess Hansueli
AW: das meinst du wohl nicht im Ernst, oder?
06.09.2018 17:06:22
Daniel
Hallo Hansueli,
produktiv würde ich dies nie einsetzen. Wenn ich mehr Zeit hätte, würde ich das Beispiel schöner machen, geht darum, dass ich eher gestern wie heute aus der bestehenden Liste alles rauswerfen und abgleichen muss.
Viele Grüße,
Daniel
AW: SpecialCells(xlCellTypeAllValidation)
06.09.2018 18:15:14
Fennek
Hallo,
ich habe mit dem Code überhaupt keine Probleme, aber die Frage, ob man die Auswahl nicht mit dem genannten SpecialCell-Code vereinfachen könnten.
mfg
Anzeige
Warum ich Probleme mit dem Code habe...
06.09.2018 18:50:35
EtoPHG
Hallo,
1. Der Code ist von einem VBA-Profi!
2. Es ist eine Procedure, keine Function
3. Er enthält keine DIM Anweisungen von Variablen
4. Er enthält feste Zuweisungen von For Loops
5. Er enthält feste Referenzierungen von Worksheets(Registername)
6. Er macht Ausgaben ins Direktfenster
Jetzt erkläre mich, wer solches (ausser VBA-Nerds/Entwickler) brauchen kann?
Gruess Hansueli
AW: einmalig prüfen
06.09.2018 20:15:31
Fennek
Hallo,
um einmalig ein Workbook zu prüfen (wie angefragt) halte ich den Ansatz für geeignet.
Hier an einem einzigen Beispiel getestet, die Fleißarbeit, aus der Formula1 den Blattnamen und den Range auszulesen, um die Liste zu markieren, spare ich mir hier.

Sub T_1()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim r As Range
For Each r In WS.Cells.SpecialCells(xlCellTypeAllValidation)
With r.Validation
Debug.Print .Type, .Formula1,
End With
Next r
End Sub
mfg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige