Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1304to1308
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

mit Fkt Fehlerwerte eines best. Sheets ermitteln

mit Fkt Fehlerwerte eines best. Sheets ermitteln
21.03.2013 21:30:04
Peter
Guten Tag
In Excel gibt es die Möglichkeit, in einer bestimmten Tabelle, mit GeheZu, Inhalte auswählen .. Formeln, Fehler
alle Zellen mit Fehler auszuwählen.
Ich versuche, eine Funktion zu erstellen, der ich als String einen bestimmten Tabellennamen übergebe und die mir dann die betroffenen Zellen (mit Fehlerwerten) als String zurückgibt.
Selection.SpecialCells(xlCellTypeFormulas, 16) habe ich mit dem Makrorecorder aufgezeichnet. Ich komme damit jedoch nicht zum Ziel. Es klappt nur, wenn ich die Funktion für die aktive Tabelle auswähle. Ist ja auch klar, da in meinem Code auch Selection steht und das ist sicher für eine Abfrage in einer nicht selektierten Tabelle ein "no go". Ich habe jedoch nicht herausgefunden, wie ich ohne Selection zum Ziel komme.
Muss ich von dieser SpecialCells-Methode Abstand nehmen und beispielweise die einzelnen Zellen von UsedRange einer bestimmten Tabelle abarbeiten?
Kann mir jemand weiterhelfen?
Danke und Gruss, Peter
https://www.herber.de/bbs/user/84498.xlsm
Option Explicit
Sub xxx1()
Debug.Print xFehler("Tabelle1")
MsgBox xFehler
End Sub
Sub xxx2()
Debug.Print xFehler("Tabelle2")
MsgBox xFehler
End Sub
Public Function xFehler(strTab As String)
Dim WS As Worksheet, RNG As Range
Set WS = Worksheets(strTab)
Set RNG = Selection.SpecialCells(xlCellTypeFormulas, 16)
xFehler = RNG.Address(0, 0)
End Function

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
WS.Cells.SpecialCells(xlCellTypeFormulas, 16)
21.03.2013 22:06:13
CitizenX
Grüße

AW: WS.Cells.SpecialCells(xlCellTypeFormulas, 16)
21.03.2013 22:32:21
Peter
Hallo CitizenX
Das funktioniert prima. Vielen Dank. Wie kann ich den Fehler abfangen, wenn keine Fehlerwerte gefunden werden? Dann kann er natürlich mit RNG keinen Range zuweisen. Eigentlich möchte ich dann ein String, z.B. "Keine Fehlerwerte gefunden" ausgeben.
Gruss, Peter
Public Function xFehler(strTab As String)
Dim WS As Worksheet, RNG As Range
Set WS = Worksheets(strTab)
Set RNG = WS.Cells.SpecialCells(xlCellTypeFormulas, 16)
xFehler = RNG.Address(0, 0)
End Function

RNG bleibt dann Nothing, was man so ...
22.03.2013 01:03:59
Luc:-?
…abfragen kann, Peter;
If RNG Is Nothing Then xFehler = CVErr(xlErrNA) Else xFehler = RNG.Address(0, 0)
Eine MsgBox würde ich nur empfehlen, falls du die Fkt in einer Subroutine einsetzen willst. Dann kannst du den CVErr-Teil dadurch ersetzen. In ZellFmln stören MsgBoxes nur, da sie bei jeder Blatt-Neuberechnung auftauchen und die Kalk-Regie aus dem Tritt bringen könnten.
Morrn, Luc :-?

Anzeige
SpecialCells(...)-Fehler, wenn Nothing
22.03.2013 01:44:13
Erich
Hi Peter,
das ist eine der Gegenden, in denen man "On Error ..." ganz gut gebrauchen kann:

Public Function xFehler(strTab As String)
Dim RNG As Range
On Error Resume Next
Set RNG = Worksheets(strTab).Cells.SpecialCells(xlCellTypeFormulas, 16)
On Error GoTo 0
If RNG Is Nothing Then xFehler = "Keine Fehlerwerte gefunden" _
Else xFehler = RNG.Address(0, 0)
End Function
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: SpecialCells(...)-Fehler, wenn Nothing
22.03.2013 05:06:35
Luschi
Guten Morgen Erich,
hast Du die Funktion mal getestet, bei mir kommt nur 1:65336 (E2003) bzw.
1:1048576 (E2007-E2010) heraus; bei Deiner und der von CitizenX.
(siehe Grafik)
Userbild
Gruß von Luschi
aus klein-Paris

Anzeige
Getestet...
22.03.2013 08:14:26
Erich
Hi Luschi,
... hatte ich das schon - probier mal das:

Sub aaTest()
MsgBox xFehler("Tabelle1")
End Sub
Hier antwortet die Fkt. richtig.
Ärger macht die Fkt., wenn sie als UDF (benutzerdef. Fkt.) verwendet wird. Dann ergibt sich im Direktbereich:
?Worksheets(strTab).Cells.SpecialCells(xlCellTypeFormulas, 16).address
$1:$1048576
Peter, brauchst du die Fkt. in VBA oder in der Tabelle?
Wenn in der Tabelle, dann ist die Frage noch offen - und ich habe momentan keine Zeit...
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Getestet...
22.03.2013 11:31:29
Peter
Hallo zusammen
Vielen Dank für die Lösungen.
@ Erich:
Im Moment brauche ich das als Funktion im VBA.
Eine Lösung in der Tabelle wäre gelegentlich reizvoll ..
Nochmals Danke!
Gruss, Peter

die SpecialCells..
22.03.2013 11:37:06
CitizenX
Hi,
..Methoden funktionieren in UDF's nicht .
Wenn eine UDF gebraucht wird muß die Sache anders angegangen werden.
Warten wir es ab was Fragesteller benötigt ...
Grüße
Steffen

AW: mit Fkt Fehlerwerte eines best. Sheets ermitteln
22.03.2013 18:21:22
Tino
Hallo,
wie die anderen ja schon festgestellt habe funktioniert
SpecialCells in einer Funktion (auf der Tabelle) nicht.
Hier eine andere Variant, Formel ist auf der Tabelle3.
Musst nur darauf achten, dass Du keinen Zirkelbezug machst.
https://www.herber.de/bbs/user/84510.xlsm
Gruß Tino

Anzeige
AW: mit Fkt Fehlerwerte eines best. Sheets ermitteln
23.03.2013 09:09:21
Peter
Hallo Tino
Vielen Dank für diese Variante.
Diese hat zudem den Vorteil, dass nebst Formeln, die Fehlerwerte ausgeben, auch Fehlerwerte, die in Zellen enthalten sind, angezeigt werden.
Gruss, Peter

AW: mit Fkt Fehlerwerte eines best. Sheets ermitteln
23.03.2013 09:14:55
Peter
Hallo Tino
Vielen Dank für diese Variante!
Sie hat zudem auch den Vorteil, dass nicht nur Formeln, die im Ergebnis einen Fehlerwert ergeben, sondern auch Werte angezeigt werden.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige