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

Forumthread: Formel mittels VBA in Zelle schreiben

Formel mittels VBA in Zelle schreiben
Jürgen
Hallo,
ich möchte gerne die Formel : =ZÄHLENWENNS(D9:D9813;"A"). Also in dem Bereich soll nach A gesucht werden.
mittels VBA in die Zelle D1 schreiben. Allerdings ist im Bereich der Spaltenbuchstabe sowie das Ende des Bereichs offen.
das Ende des Bereichs wird errechnet in der Variable 'summe'
Der Spaltenbuchstabe steht in der Variablen strBuchstabe .
Habe mal versucht:
Range(strBuchstabe & "1").FormulaLocal = "=zählenwenns(" & strBuchstabe & "9:" & strBuchstabe & summe + 1 & Chr(22) & Chr(22) & Chr(41) & Chr(22) & Chr(29)
Allerdings haut das nicht hin. Hat einer ne Idee.
Gruß Jürgen
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formel mittels VBA in Zelle schreiben
23.05.2012 22:05:31
Jürgen
Hallo,
kleiner Nachtrag,
es würde natürlich auch funktionieren dies in VBA zu rechnen und dann nur den Wert zu übergeben.
Jürgen
AW: Formel mittels VBA in Zelle schreiben
23.05.2012 22:16:01
Josef

Hallo Jürgen,
was soll denn das sein? wozu braucht's den "Spaltenbuchstaben" und wie wird er ermittelt?
Und der Rest vom Code-gemurkse kann wohl nicht funktionieren, weil es keinen gültigen Formelstring ergibt.

« Gruß Sepp »

Anzeige
AW: Formel mittels VBA in Zelle schreiben
23.05.2012 23:39:35
Jürgen
Hallo,
also ermittelt wird der Spaltenbuchstabe über:
spalte = ActiveCell.Column
strBuchstabe = Replace(Cells(1, spalte + 1).Address(0, 0, 1, 0), 1, "")
brauchen tue ich den, weil ich nicht immer in der selben Spalte bin, darum ermittle ich ihn.
Zu dem restlichen gemurkse, sagte ich ja das ich nicht viel Ahnung habe. bekoome die Formel einfach nicht hin.
Jürgen
Anzeige
AW: Formel mittels VBA in Zelle schreiben
24.05.2012 00:18:50
Jürgen
Hallo Sepp,
habs doch noch rausgefunden:
Range(strBuchstabe & "1").FormulaLocal = "=ZÄHLENWENNS(" & strBuchstabe & "9:" & strBuchstabe & summe + 1 & ";" & """A"")"
Mein Fehler war das ich den Bereich auch in Anführungszeichen gesetzt hatte. (Weiß nicht wie ich darauf gekommen bin. :-)
Dennoch Danke
Jürgen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Formel mit VBA in Zelle schreiben


Schritt-für-Schritt-Anleitung

Um eine Formel mit VBA in eine Zelle zu schreiben, kannst Du folgenden VBA-Code verwenden. Dieser Code setzt voraus, dass Du den Spaltenbuchstaben dynamisch ermitteln möchtest und die Endzeile in einer Variablen speicherst.

  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub FormelInZelleSchreiben()
    Dim strBuchstabe As String
    Dim summe As Long
    Dim spalte As Long

    ' Ermittele die Spalte und den Spaltenbuchstaben
    spalte = ActiveCell.Column
    strBuchstabe = Replace(Cells(1, spalte).Address(0, 0, 1, 0), 1, "")

    ' Setze die Variable summe auf die gewünschte Endzeile
    summe = 9813  ' Zum Beispiel: 9813 oder eine Berechnung

    ' Schreibe die Formel in die Zelle D1
    Range(strBuchstabe & "1").FormulaLocal = "=ZÄHLENWENNS(" & strBuchstabe & "9:" & strBuchstabe & summe & ";" & """A"")"
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus. Es wird die ZÄHLENWENNS-Formel in die Zelle D1 geschrieben.

Häufige Fehler und Lösungen

  • Fehler: Ungültiger Formelstring

    • Lösung: Stelle sicher, dass Du die Anführungszeichen korrekt gesetzt hast. In den meisten Fällen müssen bestimmte Teile der Formel in Anführungszeichen gesetzt werden, während andere Teile es nicht dürfen.
  • Fehler: Die Formel wird nicht korrekt in die Zelle geschrieben

    • Lösung: Überprüfe den Spaltenbuchstaben und die Endzeile. Diese müssen korrekt ermittelt und in die Formel integriert werden.

Alternative Methoden

Wenn Du die Formel nicht über VBA schreiben möchtest, kannst Du auch einfach die Formel direkt in die Zelle eingeben. Aber wenn Du häufig Daten aktualisierst, ist die Verwendung von VBA praktischer. Eine andere Möglichkeit ist, die Formel in eine Zelle als Text einzugeben und dann mit einem Excel-Makro zu aktivieren.


Praktische Beispiele

  1. Einfache Summenformel:
Range("A1").FormulaLocal = "=SUMME(A2:A10)"
  1. Zählen mit Bedingungen:
Range("B1").FormulaLocal = "=ZÄHLENWENNS(B2:B100;""=Ja"")"
  1. Formel mit Variablen:
Dim zeile As Long
zeile = 10
Range("C1").FormulaLocal = "=DURCHSCHNITT(A1:A" & zeile & ")"

Tipps für Profis

  • Verwende die Formula-Eigenschaft, wenn Du die Formel in englischer Sprache schreiben möchtest: Range("A1").Formula = "=SUM(A1:A10)".
  • Wenn Du dynamische Bereiche verwenden möchtest, kannst Du auch die End-Eigenschaft verwenden, um die letzte benutzte Zeile zu ermitteln.
  • Achte darauf, dass Du beim Schreiben von Formeln auf die richtige Syntax achtest, um Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich eine Formel in eine Zelle schreiben, die sich dynamisch anpasst? Du kannst die End-Eigenschaft verwenden, um das Ende deines Datenbereichs zu ermitteln und die Formel entsprechend anzupassen.

2. Was ist der Unterschied zwischen Formula und FormulaLocal? Formula verwendet die englische Syntax, während FormulaLocal die lokale Spracheinstellungen berücksichtigt. Verwende FormulaLocal, wenn Du Formeln in der Sprache Deines Excel schreiben möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige