Blog

Suche
Peter Rühm

Peter Rühm

Little Helpers for EXCEL (1): WENNFEHLER-Automatik

manchmal, nein eher öfter, wünscht man sich praktische Funktionalitäten in Excel.

Mir ging es letzte Woche so: ich hatte ein recht schönes Management-Cockpit für einen Kunden entwickelt. Nach der Präsentation hieß es dann: sehr schön! „Ach übrigens“ – man beachte meine beliebten Ach-Übrigens-Faktoren! – „Ach übrigens, unsere Abteilungsstruktur hat sich ein wenig geändert… „

Kein Problem, in meinen Modellen lassen sich vorhersehbare – ich kenne mittlerweile hunderte von diesen Ach-Übrigens-Faktoren! – leicht einbauen. Ich achte immer darauf, dass sie schnell, ohne Modelländerung oder Programmierung übernommen werden können. Im PRT-Modell (s. Glossar) kein Problem.

Aber: durch die Änderung ergaben einige PIVOTDATENZUORDNEN-Funktionen bei bestimmen Kombinationen von Parametern: #WERT! Kein Problem – mit der Funktion WENNFEHLER kann man dies abfangen. Aber: blöd, wenn man die Funktion 60 mal einbauen muss! (Hier stellt sich immer wieder die Frage, warum Microsoft in seine Funktionen nicht ein vernünftiges zentrales Fehlermanagement einbaut, aber diese Frage kann man wohl nicht pauschal beantworten…)

Also was tun? Wie üblich bringt Visual Basic die Möglichkeit mit sich, EXCEL zu erweitern, wo der Alltag Dinge verlangt, die im stillen Kämmerlein bei Microsoft so nicht vorhergesehen wurden: mein kleines Makro setzt um bestehende Formeln die Funktion WENNFEHLER(). Di ist übrigens eine der wenigen echt guten neuen Funktionen seit Excel 2007.

So entstand also mein Tool: Wennfehler_drumrum! Recht schnell programmiert in 10 Minuten, sparte es mir beim ersten Einsatz bereits eine halbe Stunde stupide Tipperei.

Kopieren Sie das Makro Wennfehler_drumrum am besten in Ihre Persönliche Makroarbeitsmappe, markieren Sie die Zellen mit den Formeln, die Sie mit einer Fehlerbehandlung versehen wollen, und starten Sie das Makro – vielleicht gleich mit Alt + F8!

Hier kommt der Code:


 

Sub WENNFEHLER_drumrum()

‚ (c) Peter Rühm, Pollmann & Rühm Training

‚ Setzt die Funktion WENNFEHLER um Formeln in den markierten Zellen
‚ aber nur, wenn noch kein Wennfehler drum ist

Dim Zelle As Range

For Each Zelle In Selection
    If Zelle.HasFormula Then
        If UCase(Left(Zelle.FormulaLocal, 12)) <> UCase(„=wennfehler(„) Then
            Zelle.FormulaLocal = „=wennfehler(“ & Mid(Zelle.FormulaLocal, 2) & „;0)“
        End If
    End If
Next Zelle

End Sub


Damit wünsche ich Ihnen viel Erfolg!

Wenn Sie an mehr solcher pragmatischen Beispiele interessiert sind, so gibt es dazu natürlich ein tolles Seminar…..

Ihr Peter Rühm

Wenn Ihnen dieser Beitrag gefallen hat, dann teilen  Sie ihn gerne. Falls Sie Anmerkungen haben, schreiben Sie bitte einen Kommentar, oder senden Sie mir eine Mail an info@prt.de.

Print Friendly, PDF & Email

Beitrag teilen:

6 Antworten

  1. Jetzt kommentiere ich meinen eigenen Beitrag: Danke für die vielen netten Feedbacks auf dieses mini Excel-Tool (ich tippe hier gerne Excel-Toll, vielleicht ist das ein guter Titel ?) Ich wurde nun so oft gebeten, hier mehr zu bringen, dass ich mal in die Trickkiste schaue…
    Beim Coaching in einem BI-Projekt bei einem meiner Lieblingskunden in München sehe ich heute: mein vorgestern geposteter WennfehlerDrumRum-Helper ist schon auf einem Button in Excel integriert 🙂 Das freut mich!

  2. Guten Tag Hr. Ruehm. Dies scheint mir ein sehr Hilfreiches Tool zu sein. Gerade, da ich es sehr gut gebrauchen könnte. Leider funktioniert es bei mir unter Excel 2010 nicht. Gibt es da eine Änderung oder haben Sie eine Idee wieso es nicht funktioniert? Es wird immer ein Syntaxfehler angezeigt.
    Mfg
    Michael Bachmann

  3. Hallo Peter, das ist genau die Funktion, die ich brauche. Leider funktioniert sie bei mir nicht. Ich habe sie eingegeben als:
    Sub WENNFEHLER_drumrum()
    Dim Zelle As Range

    For Each Zelle In Selection
    If Zelle.HasFormula Then
    If UCase(Left(Zelle.FormulaLocal, 12)) UCase(„=wennfehler(„) Then
    Zelle.FormulaLocal = „=wennfehler(“ & Mid(Zelle.FormulaLocal, 2) & „;0)“
    End If
    End If
    Next Zelle

    End Sub

    Wo kann hier der Fehler sein?
    Ich kenne mich mit VBA leider gar nicht aus, aber vielleicht kannst Du mir ja helfen.

    Vielen Dank und viele Grüße
    Doreen

  4. Hallo Peter,
    meine Anfrage hat sich erledigt. Ich habe im Excel-Forum einen Beitrag zu Deinem Script gefunden :-). Es müssen einfach alle “ nach oben gesetzt werden; bei Dir sind sie z.T. unten.

    Viele Grüße
    Doreen

Schreibe einen Kommentar zu ruehm Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Up to date bleiben

Melden Sie sich für unseren Newsletter an!