Mit Formula.Local Formel in Zelle Schreiben

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Mit Formula.Local Formel in Zelle Schreiben

    Hi Zusammen

    Ich habe folgenden Problem:
    Ich will mit FormulaLocal eine Formel in eine Zelle schreiben, die ich vorher aktiviert habe.
    Der Wert der am Ende geschrieben werden soll sieht am Ende so aus.

    Visual Basic-Quellcode

    1. =MITTELWERT(Daten!D5:D11)


    Im Prinzip sollen alle Werte über Variablen gefüllt werden.
    Wenn ich zum Beispiel eine Variable mit den gewünschten Informationen
    zusammen setze, kommen die richtigen Werte heraus.

    Visual Basic-Quellcode

    1. Dim Formel As String
    2. Formel = "=MITTELWERT(Daten!" & Quelldaten_Spalte & "" & Datensatz_Update_Start & ":" & Quelldaten_Spalte & "" & Datensatz_Update_Ende & ")"
    3. MsgBox "Formelstring " & Formel


    Wenn ich allerdings die Formel in die Zelle Schreiben will, bekomme ich einen Fehler:

    Laufzeitfehler "1004"
    Anwendungs- oder objektdefinierter Fehler.

    Visual Basic-Quellcode

    1. ActiveCell.FormulaLocal = "=MITTELWERT(" & Datenarbeitsblatt & "" & Quelldaten_Spalte & "" & Datensatz_Update_Start & ":" & Quelldaten_Spalte & "" & Datensatz_Update_Ende & ")"


    Kann mir einer sagen, woran das liegen könnte?

    Vielen Dank.

    Bobble
    - Du kannst die Macro-Aufzeichnung auf relative Adressierung umstellen.

    - Wenn du weisst, wie du die Formel richtig aussehen muss, kannst du sie auch zusammenbauen.
    Wichtig ist, dass du überhaupt erst mal die richtige (englische) Formel verwendest und (falls vorhanden) auch die Trennzeichen (Komma statt Semikolon).
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich habe die Makroaufnahme gerade mit "Relative Aufzeichnung"
    gestartet, die Formel wird aber immer noch in der R1C1 Schreibweise
    aufgenommen. Gibt es woanders noch eine Option die ich setzen muss?

    Visual Basic-Quellcode

    1. ActiveCell.Select
    2. ActiveCell.FormulaR1C1 = "=AVERAGE(Daten!R[-4]C[-1]:R[2]C[-1])"


    Grüße,
    Bobble
    Du hast den Rest doch oben schon geschreiben
    Formel = "=MITTELWERT(Daten!" & Quelldaten_Spalte & "" & Datensatz_Update_Start & ":" & Quelldaten_Spalte & "" & Datensatz_Update_Ende & ")"
    Woher kommen denn die Variablen, die du eintragen willst.
    Hast du die schon fertig gefüllt vorliegen?
    Dann halt einfach dasselbe in englischer Schreibweise

    Visual Basic-Quellcode

    1. Formel = "=AVERAGE(Daten!" & Quelldaten_Spalte & "" & Datensatz_Update_Start & ":" & Quelldaten_Spalte & "" & Datensatz_Update_Ende & ")"
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --