Fehlerwerte in Mappe mit VBA auflisten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Fehlerwerte in Mappe mit VBA auflisten
von: Michael
Geschrieben am: 31.07.2015 14:57:34

Hallo Zusammen,
ist es mit einem kleinen Makro möglich, alle Fehlerwerte mit Adresse innerhalb einer Arbeitsmappe in einem separaten Tabellenblatt aufzulisten [am Anfang via Makro einzufügen]?
Vielen Dank für Eure Unterstützung
Michael

Bild

Betrifft: war doch erst Thema?
von: Michael
Geschrieben am: 31.07.2015 16:47:26
Hi (auch) Michael,
vor zwei, drei Wochen gab es im Forum einen Thread zum Thema, der richtig zur Sache ging, aber ich habe ihn leider nicht mehr gefunden.
Aber weil das Thema mich auch interessiert, habe ich ein bißchen recherchiert und was Simples zusammegestöpselt:

Sub fehler()
' Recherche: excel vba if cell error
' Treffer u.a. stackoverflow
Dim c As Range
Dim i As Long
For Each c In Selection
' die dumme Methode:
  If Mid(c.Text, 1, 1) = "#" Then MsgBox "Fehler " & c.Address & c.Text
' die gescheitere Methode:
  If VarType(c.Value) = vbError Then MsgBox "VarType" & c.Address & c.Text
Next
i = 0
For Each c In Selection
  If VarType(c.Value) = vbError Then
    i = i + 1
    Sheets("Fehler").Range("A" & i).Value = c.Address
    Sheets("Fehler").Range("B" & i).Value = c.Text
    Sheets("Fehler").Range("c" & i).Value = "'" & c.FormulaLocal
  End If
Next
MsgBox "Anzahl Fehler: " & i
End Sub
Du markierst einen fehlerbehafteten Bereich und drückst Strg-Shift-M; die Fehler werden in das Blatt "Fehler" [das *musst* Du bitte händisch anlegen] in drei Spalten geschrieben: Adresse, Typ, Formel.
Ach, was soll's. Hier die Datei incl. Blatt "Fehler": https://www.herber.de/bbs/user/99219.xls
Das Ding kann man nach Gusto aufbohren für for each blatt in workbook (außer "Fehler") und statt des selektierten Bereichs auf for each c in blatt.usedrange oder so.
Schöne Grüße,
Michael

Bild

Betrifft: noch anpassen
von: Michael
Geschrieben am: 31.07.2015 20:16:39
Hallo Michael,
Vielen Dank für die Datei.
Ich will damit umfangreiche Mappen überprüfen, ob sich Fehlerwerte darin befinden. Eine Auflistung in einem Tabellenblatt mit Adresse ist daher unverzichtbar. Da ich jedoch von VBA keine Ahnung habe, kann ich das Teil leider selber kaum anpassen.
Kannst Du mich dabei etwas unterstützen?
Vielen Dank für Deine Hilfe!
Gruß
Michael

Bild

Betrifft: Fehler in Formeln auflisten in separaten Blatt
von: Matthias L
Geschrieben am: 31.07.2015 23:44:03
Hallo
Schicke einfach eine Schleife über nur die Zellen, welche einen Fehler zurückgeben.
Also ganz ohne Selection.
https://www.herber.de/bbs/user/99230.xlsm
Gruß Matthias

Bild

Betrifft: Prima! ... geht das auch mit Blatt anlegen?
von: Michael
Geschrieben am: 02.08.2015 13:41:03
Hallo Mattias,
vielen Dank auch. Läuft funktionell super!
Da ich das für alle meine Dateien verwenden möchte, speichere ich das Makro in der Personal.xlsb ab.
Dazu wäre es jedoch notwendig, dass das Makro vorab prüft, ob ein Tabellenblatt Fehler existiert und falls nicht, ein Blatt anlegt(am besten als erstes Blatt. MIt den Recorder habe ich das nicht hinbekommen.
... kannst Du nochmal eingreifen?
Vielenb Dan und Gruß
Michael

Bild

Betrifft: AW: Prima! ... geht das auch mit Blatt anlegen?
von: Matthias L
Geschrieben am: 02.08.2015 14:14:40
Hallo

Option Explicit
Sub MyNewWorksheet()
Dim x&
 For x = 1 To Worksheets.Count
 If Worksheets(x).Name = "Fehler" Then
    MsgBox "Ein Registerblatt mit Namen:(Fehler) existiert schon", vbCritical
    Exit Sub
 End If
 Worksheets.Add after:=Sheets(Sheets.Count)
  With ActiveSheet
   .Name = "Fehler"
   .Move Before:=Sheets(1)
  End With
 Next
End Sub
Gruß Matthias

Bild

Betrifft: DANKE! owT
von: Michael
Geschrieben am: 02.08.2015 14:18:50


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlerwerte in Mappe mit VBA auflisten"