Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formeln in Zellen per VBA

Formeln in Zellen per VBA
09.04.2016 13:20:39
Peter
Hallo Excelexperten,
benötige wieder einmal eure Hilfe.
Ich möchte mit VBA Formeln in eine Zeile einfügen.
Wenn A2 leer ist, dann sollen die folgenden Formeln
eingefügt werden:
E2 einfügen Formula = =WENN(B2="Zugang";D2*C2;"")
F2 einfügen Formula = =WENN(B2="Abgang";D2*C2;"")
G2 einfügen Formula = =WENN(E2"";SUMME(E2);WENN(F2"";SUMME(F2);""))
in jede weitere Zeile:
E2 einfügen Formula = =WENN(B2="Zugang";D2*C2;"")
F2 einfügen Formula = =WENN(B2="Abgang";D2*C2;"")
G2 einfügen Formula = =WENN(E3"";SUMME(G2+E3);WENN(F3"";SUMME(G2-F3);""))
End if
Das Makro an sich existiert bereits. Ich habe jedoch Probleme die Formeln
in die Makro-Sprache umzusetzen, damit diese immer in der nextfolgenden Zeile
richtig sind.
Danke für Eure Hilfe.
Gruss Peter

Anzeige

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 13:30:05
Hajo_Zi
Hallo Peter,
trage die Formel ein. Füge eine Tabelle ein internationale Makrovorlage, kopiere die Formel dort hin.

AW: Formeln in Zellen per VBA
09.04.2016 13:34:59
Peter
Hallo Hajo,
mit Deiner Antwort kann ich leider nichts anfangen. Verstehe ich nicht.
Ich weiss nicht wie ich meine Daten in VB übernehmen kann. Du weisst es mit Sicherheit.
Vielleicht kannst Du mir das entsprechend schreiben.
Besten Dank
Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 13:37:08
Hajo_Zi
Hallo Peter,
hast Du die Formel kopiert siehst Du die Formel in englisch, was VBA ist.
Gruß Hajo

AW: Formeln in Zellen per VBA
09.04.2016 13:49:05
Werner
Hallo Peter,
Formeln kannst du auch in der Deutschen Schreibweise per VBA in Zellen schreiben.
Range("E2").FormulaLocal = "=WENN(B2=""Zugang"";D2*C2;"""")"
Gänsefüsschen innerhalb der Formel müssen doppelt ausgeführt sein.
Gruß Werner

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 13:51:23
Hajo_Zi
Hallo Peter,
was dann aber bei einer englischen Version zu Problemen führt.
Ich hatte einen Engländer als Kollege.
Darum lehne ich dies ab.
Gruß Hajo

AW: Formeln in Zellen per VBA
09.04.2016 14:01:22
Peter
Hallo Hajo,
ich weiss leider nicht, wie ich das was Du mir mitgeteilt hast durchführen soll.
Ich habe jetzt eine internationle Makrovorlage eingefügt und die Formel eingegeben.
Ich sehe aber keine englische Anzeige.
Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 14:06:35
Peter
Hallo Hajo,
hat geklappt. Besten Dank.
Noch eine Frage ist es besser mit A2 oder R2C1 zu arbeiten.
Gruss Peter

AW: Formeln in Zellen per VBA
09.04.2016 14:11:58
Hajo_Zi
ich würde mit A2 arbeiten da dies eindeutiger ist.
Gruß Hajo

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 14:13:00
Peter
Hallo Hajo,
besten Dank
Gruss Peter

AW: Formeln in Zellen per VBA
09.04.2016 14:25:40
Peter
Hallo Hajo,
leider funktioniert das mit der englischen Version nicht.
Wenn ich die Formeln in VBA eingebe und dies mit Englisch in die bestehende Tabelle einfüge
gibt es eine Fehlermeldung. Wenn ich die Namen in Deutsch einfüge ist alles ok.
Was gibst Du mir für einen Rat?
Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 14:27:51
Hajo_Zi
keinen, was wohl daran liegt das ich den Code nicht sehe.
Gruß Hajo

AW: Formeln in Zellen per VBA
09.04.2016 14:46:52
Hajo_Zi
Hallo Peter,
man könnte vermuten es steht "" statt """"
Gruß Hajo

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 16:04:29
Peter
Hallo Hajo,
Makro anbei:
Sub MakroFormel_ersteZeile1()
Range("E2").FormulaLocal = "=If(B2=""Zugang"";D2*C2;"""")"
Range("F2").FormulaLocal = "=If(B2=""Abgang"";D2*C2;"""")"
Range("G2").FormulaLocal = "=If(E2"""";SUM(E2);IF(F2"""";SUM(F2);""""))"
End Sub
Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 16:09:56
Hajo_Zi
Hallo Peter,
Du hast also eine englische Version? Da Du die Formel in englisch hast.
Im Englischen ist es nicht ; sondern ,
Ich habe eine Deutsche Version und habe das Local entfern, das bei Dir wohl bleiben kann, da englische Version. Das führt nur zu einem Fehler, falls es auf einer Deutschen Version laufen soll.
Falls es auf beiden Versionen laufen soll.
Option Explicit
Sub MakroFormel_ersteZeile1()
Range("E2").Formula = "=If(B2=""Zugang"",D2*C2,"""")"
Range("F2").Formula = "=If(B2=""Abgang"",D2*C2,"""")"
Range("G2").Formula = "=If(E2"""",SUM(E2),IF(F2"""",SUM(F2),""""))"
End Sub

Gruß Hajo

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 16:15:23
Peter
Hallo Hajo,
wunderbar, jetzt klappt es.
Wünsche noch ein schönes Wochenende.
Gruss Peter

AW: Formeln in Zellen per VBA
09.04.2016 14:32:05
Werner
Hallo Peter,
deutsch:

Range("E5").FormulaLocal = "=deine Formel"
Englisch:

Range("E5").Formula = "=deine Formel"
Gruß Werner

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 14:32:51
Werner
Hallo Peter,
deutsch:

Range("E5").FormulaLocal = "=deine Formel"
Englisch:

Range("E5").Formula = "=deine Formel"
Gruß Werner

AW: Formeln in Zellen per VBA
09.04.2016 14:35:32
Werner
Hallo Peter,
noch die R1C1 Schreibweise
Range("E5").FormulaR1C1 ="deine Formel"
Gruß Werner

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 16:16:52
Peter
Hallo Werner,
es klappt jetzt wunderbar. Besten Dank
Wünsche noch ein schönes Wochenende.
Gruss Peter

AW: Gerne u. Danke für die Rückmeldung. o.w.T
09.04.2016 17:07:20
Werner

AW: Formeln in Zellen per VBA
09.04.2016 13:55:57
Peter
Hallo Werner,
besten Dank für Deine Hilfe.
Hajo hat darauf jedoch geantwortet, dass englische Sprache besser ist.
Kannst Du mir das in englisch mitteilen?
Besten Dank Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
09.04.2016 16:34:25
snb

Sub M_snb()
[E2:G2] = Array("=(B2=""abgang"")*C2*D2", "=(B2=""zugang"")*C2*D2", "=sum(E2:F2)")
End Sub

AW: Formeln in Zellen per VBA
10.04.2016 11:23:28
Peter
Hallo snb,
Danke für Deine Information.
Gefällt mir ebenfalls gut.
Habe jedoch ein Problem mit der Änderung, die ich zusätzlich benötige.
Sub M_snb1()
[E3:G3] = Array("=(B3=""Abgang"")*C3*D3", "=(B3=""Zugang"")*C3*D3", "=sum(E3:F3)")
End Sub
bei =sum(E3:F3)benötige ich noch +G2
Gruss Peter

Anzeige
AW: Formeln in Zellen per VBA
10.04.2016 11:30:14
Peter
Hallo snb,
habe die Lösung gefunden.
Wünsche noch ein schönes Wochenende.
Gruss Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Formeln in Zellen per VBA einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne das VBA-Editor-Fenster:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.
  3. Schreibe das Makro:

    • Füge den folgenden Code ein, um Formeln in Zellen zu schreiben:
    Sub FormelnInZellen()
       Range("E2").FormulaLocal = "=WENN(B2=""Zugang"";D2*C2;"""")"
       Range("F2").FormulaLocal = "=WENN(B2=""Abgang"";D2*C2;"""")"
       Range("G2").FormulaLocal = "=WENN(E2<>"""";SUMME(E2);WENN(F2<>"""";SUMME(F2);""""))"
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder gehe zu Run > Run Sub/UserForm, um das Makro auszuführen.
  5. Anpassung für weitere Zeilen:

    • Du kannst eine Schleife verwenden, um die Formeln in den nachfolgenden Zeilen automatisch zu schreiben:
    Sub FormelnInZellenAutomatisch()
       Dim i As Integer
       For i = 2 To 100 ' Beispiel für Zeilen 2 bis 100
           Range("E" & i).FormulaLocal = "=WENN(B" & i & "=""Zugang"";D" & i & "*C" & i & ";"""")"
           Range("F" & i).FormulaLocal = "=WENN(B" & i & "=""Abgang"";D" & i & "*C" & i & ";"""")"
           Range("G" & i).FormulaLocal = "=WENN(E" & i & "<>"""";SUMME(E" & i & ");WENN(F" & i & "<>"""";SUMME(F" & i & ");""""))"
       Next i
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Formel wird nicht korrekt eingefügt:

    • Stelle sicher, dass du FormulaLocal verwendest, wenn du eine Formel in der deutschen Sprache einfügst.
  • Fehler: Ungültige Zeichen oder Syntax:

    • Achte darauf, dass Gänsefüßchen innerhalb der Formeln korrekt verwendet werden (doppelt ausführen).
  • Fehler: Englisch und Deutsch mischen:

    • Verwende Formula für englische Formeln und FormulaLocal für deutsche Formeln, um Komplikationen zu vermeiden.

Alternative Methoden

  • Formel in R1C1-Notation: Du kannst auch die R1C1-Notation verwenden, um Formeln in Zellen einzufügen:

    Range("E2").FormulaR1C1 = "=IF(RC[-1]=""Zugang"",RC[-2]*RC[-3],"""")"
  • Array-Formeln verwenden: Du kannst auch ein Array verwenden, um mehrere Formeln gleichzeitig einzufügen:

    Sub FormelnMitArray()
       [E2:G2] = Array("=(B2=""Abgang"")*C2*D2", "=(B2=""Zugang"")*C2*D2", "=SUM(E2:F2)")
    End Sub

Praktische Beispiele

  1. Einfaches Beispiel:

    Sub EinfachesBeispiel()
       Range("A1").Value = "Zugang"
       Range("B1").Value = 10
       Range("C1").Value = 5
       Range("D1").FormulaLocal = "=WENN(A1=""Zugang"";B1*C1;"""")"
    End Sub
  2. Formel mit Bedingungen:

    Sub BedingungenBeispiel()
       If Range("A1").Value = "" Then
           Range("B1").FormulaLocal = "=WENN(A1=""Zugang"";B2*C2;"""")"
       End If
    End Sub

Tipps für Profis

  • Verwende lokale Einstellungen: Achte darauf, welche Sprache die Excel-Version hat, um Fehler mit der Formelsyntax zu vermeiden.
  • Testen von Makros: Nutze den Debugger im VBA-Editor, um Fehler schnell zu identifizieren.
  • Dokumentation: Halte deinen Code gut kommentiert, damit du später leichter nachvollziehen kannst, was jede Formel bewirken soll.

FAQ: Häufige Fragen

1. Kann ich auch englische Formeln verwenden? Ja, du kannst Formula anstelle von FormulaLocal verwenden, um Formeln in englischer Sprache einzufügen.

2. Wie kann ich sicherstellen, dass meine Formeln in allen Excel-Versionen funktionieren? Verwende die FormulaLocal-Eigenschaft für die lokale Sprache oder teste deine Makros in verschiedenen Excel-Versionen, um die Kompatibilität sicherzustellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige