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
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.
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)  .
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.
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
Top
#6
Hallo,

ALLE Anführungszeichen!
Gruß

Edgar

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

Gruß Micha
Top


Gehe zu:


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