Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: grüne Eckerln weg in einem Bereich

VBA: grüne Eckerln weg in einem Bereich
20.09.2020 10:49:15
Günther
Hallo,
ich möchte gerne per VBA die grünen "Fehler-Eckerln" für einen bestimmten Fehler (z.B. als Text gespeicherte Zahlen) und für einen bestimmten Bereich (z.B. mehrere Spalten einer Liste) deaktivieren:
Selection.Errors(xlNumberAsText).Ignore = True
Solange hinter Selection eine einzelne Zelle steht, funktioniert der Befehl.
Sobald Selection zwei oder mehr Zellen umfasst, liefert der Befehl den Laufzeitfehler 1004 (Anwendungs- oder objektdefinierter Fehler).
Warum ist das so und gibt es eine Möglichkeit, doch einen Bereich ein einem Stück anzusprechen? Wenn ja, wie würde der Befehl lauten? Aus Performancegründen möchte ich es natürlich vermeiden, alle Zellen per Schleife einzeln anzusprechen.
Ebenfalls möchte ich die Fehlerprüfung weder insgesamt noch für den betreffenden Fehler deaktivieren, zumal dies meines Wissens eine Client-bezogene (und nicht Mappen-bezogene) Eigenschaft ist.
Application.ErrorCheckingOptions.BackgroundChecking = False
Application.ErrorCheckingOptions.NumberAsText = False
Kleine Zusatzfrage:
Der von mir benötigte Fehler ist der "InconsistentTableFormula", welcher mit 9 codiert ist.
Gemäß Logik sollte es dafür die xl-Konstante xlInconsistentTableFormula geben, welche bei mir aber undefiniert ist.
Schreibt man diese Konstante irgendwie anders?
Viele Grüße und herzlichen Dank für alle Rückmeldungen
Günther
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: grüne Eckerln weg in einem Bereich
20.09.2020 14:20:15
GerdL
Moin Günther,
es kann sein, dass du mit einer Zelleneigenschaft, die keine Rangeeigenschaft ist, arbeitest.
Sub Unit()
Dim C As Range
If TypeOf Selection Is Range Then
For Each C In Selection
C.Errors(xlNumberAsText).Ignore = True
Next
End If
End Sub
Gruß Gerd
Anzeige
AW: VBA: grüne Eckerln weg in einem Bereich
21.09.2020 22:50:56
Günther
Hallo Gerd,
Danke für Deine Rückmeldung. Microsoft schreibt in der Online-Hilfe:
Verwenden Sie die Errors-Eigenschaft des Range-Objekts, um ein Errors-Objekt zurückzugeben.
Dementsprechend wäre ich eigentlich schon davon ausgegangen, dass die Errors-Eigenschaft eine Range-Eigenschaft und keine Zellen-Eigenschaft ist. Aber vermutlich darf man die Hilfe da nicht so genau nehmen. Range-Objekt.AddComments funktioniert ja auch nur, wenn hinter dem Range-Objekt eine Einzelzelle steht. Aber dort entspricht es auch der manuellen Bedienung. Beim Ignorieren der grünen Eckerln kann man aber manuell sehr wohl mit einem Klick einen ganzen Bereich bearbeiten. Wie auch immer ...
Ad Schleife:
Wie schon gesagt, wollte ich genau so eine Schleife aus Performancegründen lieber vermeiden. Wird aber dann wohl doch so irgendeine Variante werden.
Ich lass den Beitrag noch einmal bei den offenen Fragen drinnen - falls noch jemand zur kleinen Zusatzfrage mit der nicht definierten Konstante xlInconsistentTableFormula etwas weiß ...
Grüße
Günther
Anzeige
AW: VBA: grüne Eckerln weg in einem Bereich
22.09.2020 00:29:39
Mullit
Hallo,
da sagt uns die Logik, wir schauen in den Objektkatalog ;-) und dort ein Blick in die XlErrorChecks-Aufzählung, M$-Online:
https://docs.microsoft.com/en-us/office/vba/api/excel.xlerrorchecks
xlInconsistentListFormula 	9

Gruß, Mullit
Anzeige
AW: VBA: grüne Eckerln weg in einem Bereich
22.09.2020 08:11:56
Günther
Danke Mullit,
Danke für die Info!
ich hab mich davon "irritieren" lassen, dass die dazugehörige ErrorCheckingOption eben anders heißt:
Application.ErrorCheckingOptions.InconsistentTableFormula = false

In allen anderen Fällen sind die Benennungen der Eigenschaften und der Konstanten gleich.
Viele Grüße
Günther
Anzeige
AW:ah prima, stimmt, auch wieder wahr...
25.09.2020 12:55:31
Mullit
...ich mach's auch nur mit Bauernschläue, ich geb dazu immer eine funktionierende Konstante in das Suchfeld des Objektkatalogs ein, schon landet man bei der richtigen Enumeration mit allen übrigen Konstanten...
Gruß, Mullit
AW: AW:ah prima, stimmt, auch wieder wahr...
25.09.2020 17:02:43
Günther
Guter Tipp - Danke :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Grüne Ecken in Excel entfernen: So geht's


Schritt-für-Schritt-Anleitung

Um die grünen Dreiecke (Fehlerindikatoren) in Excel zu entfernen, kannst Du VBA verwenden. Hier ist eine einfache Anleitung, um die grünen "Eckerln" für einen bestimmten Bereich zu deaktivieren.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub GrüneEckenEntfernen()
       Dim C As Range
       If TypeOf Selection Is Range Then
           For Each C In Selection
               C.Errors(xlNumberAsText).Ignore = True
           Next
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Markiere den Bereich, in dem Du die grünen Ecken entfernen möchtest.

  6. Drücke ALT + F8, wähle GrüneEckenEntfernen und klicke auf Ausführen.

Dieser Code ignoriert den Fehler "als Text gespeicherte Zahlen" für alle Zellen im markierten Bereich.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn Du versuchst, die Fehler-Eigenschaft für einen Bereich anzuwenden, der mehr als eine Zelle umfasst. Stelle sicher, dass Du den Code wie oben beschrieben verwendest.

  • Fehler ignorieren funktioniert nicht: Überprüfe, ob Du die richtige Fehlerart verwendest. Der Code nutzt xlNumberAsText. Du kannst auch andere Fehlerarten ignorieren, indem Du die entsprechende Konstante anpasst.


Alternative Methoden

  1. Fehlerüberprüfung deaktivieren:

    • Gehe zu Datei > Optionen > Formeln.
    • Deaktiviere die Option Fehlerüberprüfung aktivieren.
  2. Manuelles Ignorieren:

    • Klicke mit der rechten Maustaste auf eine Zelle mit einem grünen Dreieck und wähle Fehler ignorieren.
  3. Formatierung ändern:

    • Wähle die Zellen aus und ändere das Zellenformat auf einen anderen Typ, z.B. Text. Dies kann das grüne Dreieck ebenfalls entfernen.

Praktische Beispiele

  • Beispiel 1: Wenn Du eine ganze Spalte hast, in der die Werte als Text gespeichert sind, kannst Du den gesamten Bereich auswählen und den oben genannten VBA-Code verwenden, um die grünen Ecken zu entfernen.

  • Beispiel 2: Wenn Du eine Excel-Tabelle hast, die viele Formeln enthält, die inkonsistent sind (z.B. InconsistentTableFormula), kannst Du diese ebenfalls mit einer Anpassung des VBA-Codes ignorieren.


Tipps für Profis

  • Bauernschläue nutzen: Verwende die Objektkatalog-Funktion in VBA, um schnell die richtigen Konstanten zu finden. Dies spart Zeit und minimiert Fehler.

  • Fehlerüberprüfung für ganze Spalten: Wenn Du Fehler in ganzen Spalten ignorieren möchtest, kannst Du den Code entsprechend anpassen, um die gesamte Spalte als Range zu wählen.

  • Regelmäßige Wartung: Überprüfe regelmäßig Deine Arbeitsblätter auf Fehler und bereinige diese, um die Übersichtlichkeit zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Fehler in Excel ignorieren?
Du kannst den VBA-Code anpassen, um verschiedene Fehlerarten zu ignorieren, indem Du mehrere .Ignore Befehle für verschiedene Fehlerarten hinzufügst.

2. Gibt es eine Möglichkeit, die Fehlerüberprüfung für alle Zellen zu deaktivieren?
Ja, gehe zu Datei > Optionen > Formeln und deaktiviere die Fehlerüberprüfung.

3. Warum funktioniert der Befehl nicht für ausgewählte Bereiche?
Der Befehl ist möglicherweise nicht korrekt, wenn die Selection nicht als Range identifiziert wird. Stelle sicher, dass Du tatsächlich einen Range-Objekt auswählst.

4. Was ist der Unterschied zwischen xlInconsistentTableFormula und xlInconsistentListFormula?
xlInconsistentTableFormula ist eine spezifische Konstante, die für Tabellen verwendet wird, während xlInconsistentListFormula für Listen gedacht ist. Achte darauf, die richtige Konstante zu verwenden, um Fehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige