Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel via VBA erweitern mit Wennfehler
#1
Hallo zusammen

Kennt vielleicht jemand eine VBA, mit der ich bestehende Formeln erweitern kann ohne das der Inhalt der Formel verändert wird.
Als Beispiel hätte ich 

=(WENN(UND($C$4=$C$212;$D$4=$F$254;$E$4=$E$211;$F$4=$F$211);$H$4;0)+WENN(UND($C$10=$C$212;$D$10=$F$254;$E$10=$E$211;$F$10=$F$211);$H$10;0)+WENN(UND($C$16=$C$212;$D$16=$F$254;$E$16=$E$211;$F$16=$F$211);$H$16;0)/$S$W12

Dies ist nur der Auszug aus einer Formel.
Prinzipiell soll aber diese mit einem  Wennfehler ergänzt werden. Also

=Wennfehler((WENN(UND($C$4=$C$212;$D$4=$F$254;$E$4=$E$211;$F$4=$F$211);$H$4;0)+WENN(UND($C$10=$C$212;$D$10=$F$254;$E$10=$E$211;$F$10=$F$211);$H$10;0)+WENN(UND($C$16=$C$212;$D$16=$F$254;$E$16=$E$211;$F$16=$F$211);$H$16;0)/$S$W12;0)  .

Ich habe schon einmal was dazu gefunden. Allerdings kommt schon ein Fehler beim erstellen der VBA.

Sub WENNFEHLER_drumrum()
‚ © 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


Vielleicht hat ja jemand eine Idee dazu. Würde mir echt viel Arbeit ersparen.

Danke und Gruß
Micha
Antworten Top
#2
Hallo,

die Formel ist per se schon falsch!

Was soll das sein:


Code:
/$S$W12
???

Außerdem fehlt vor dem / noch eine Klammer!

Ich würde das sowieso kürzen:


Code:
=WENNFEHLER(SUMMENPRODUKT(($C$4:$C$16=$C$212)*($D$4:$D$16=$F$254)*($E$4:$E$16=$E$211)*($F$4:$F$16=$F$211)*(REST(ZEILE($C$4:$C$16);6)=4);$H$4:$H$16)/$S$16;"")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Ja, das mag sein. Hab auch nur einen Auszug raus kopiert. Ansich funktioniert die Formel schon. Ging nur um ein Anschauungsbeispiel.
Grundlegend sollte ja die VBA auch eine Formel in einer Zelle erkennen und an den Anfang den =Wennfehler( stellen und ans Ende ;0)  .
Antworten Top
#4
Hi,

Dein VBA-Code hat die falschen Anführungszeichen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Ich habe jetzt mal alle Anführungszeichen hoch gesetzt bis auf das „;0)“. Zumindest werden mir die Zeilen nicht mehr in Rot angezeigt. Beim Ausführen gibt er mir einen Laufzeitfehler aus und zeigt mir den Fehler in bei  Zelle.FormulaLocal = „=wennfehler(“ & Mid(Zelle.FormulaLocal, 2) & „;0)“   .  Hättest du da noch eine Idee?

Gruß Micha
Antworten Top
#6
Hallo,

ALLE Anführungszeichen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#7
Du bist der Beste. Vielen Dank.

Gruß Micha
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste