Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

VBA: grüne Eckerln weg in einem Bereich

Betrifft: VBA: grüne Eckerln weg in einem Bereich von: Günther
Geschrieben am: 20.09.2020 10:49:15

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

Betrifft: AW: VBA: grüne Eckerln weg in einem Bereich
von: GerdL
Geschrieben am: 20.09.2020 14:20:15

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

Betrifft: AW: VBA: grüne Eckerln weg in einem Bereich
von: Günther
Geschrieben am: 21.09.2020 22:50:56

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

Betrifft: AW: VBA: grüne Eckerln weg in einem Bereich
von: Mullit
Geschrieben am: 22.09.2020 00:29:39

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

Betrifft: AW: VBA: grüne Eckerln weg in einem Bereich
von: Günther
Geschrieben am: 22.09.2020 08:11:56

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

Betrifft: AW:ah prima, stimmt, auch wieder wahr...
von: Mullit
Geschrieben am: 25.09.2020 12:55:31

...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

Betrifft: AW: AW:ah prima, stimmt, auch wieder wahr...
von: Günther
Geschrieben am: 25.09.2020 17:02:43

Guter Tipp - Danke :-)

Beiträge aus dem Excel-Forum zum Thema "VBA: grüne Eckerln weg in einem Bereich"