Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Mit Makro Formel in Zelle einfügen





Frage

Hallo Ich möchte mit einem auto_open Makro eine Formel in die 2. Zelle der ersten leeren Zeile am Ende der Datenbank einfügen Wie mache ich das? habe es bis jetzt nicht geschafft, auch nicht mit aufzeichnen. Danke

Antwort 1 von Guenter

Hallo,
in der VB-Hilfe habe ich folgendes gefunden:

Zitat:

Einfügen einer Tabellenfunktion in eine Zelle

Um eine Tabellenfunktion in eine Zelle einzufügen, geben Sie die Funktion als Wert der Formula-Eigenschaft des entsprechenden Range-Objekts an. Im folgenden Beispiel wird die Tabellenfunktion ZUFALLSZAHL (RAND in VBA) der Formula-Eigenschaft des Bereichs A1:B3 in Tabelle1 der aktiven Arbeitsmappe zugewiesen.

Sub InsertFormula()
Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub



Das beschriebene Beispiel scheint bei mir zu funktionieren.
Weist Du wie man die "2. Zelle der ersten leeren Zeile" findet?

Gruß
Günter

Antwort 2 von Chrigel

Hallo Günter

Dieses Makro spring zur ersten leeren Zeile in Spalte A und mit offset dann eine Zelle nach rchts

Sub TabelleEingänge()
'
' TabelleEingänge Makro
' Makro am 09.01.2002 von Christian Bachmann aufgezeichnet
Sheets("Eingänge").Select
Sheets("Eingänge").Move Before:=Sheets(1)
Dim Zelle As Object
Dim Spalte As Object
Set Spalte = ActiveSheet.Columns(1)
For Each Zelle In Spalte.Cells
If Trim(Zelle.Value) = "" Then
Zelle.Select
ActiveCell.Offset(0, 1).Select
Exit For
End If
Next
End Sub

Ich möchte mit meinem Makro in dieser Zelle eine Wenn Formel einfügen, leider ist es mir bis jetzt nicht geglückt

Gruss¨
Christian

Antwort 3 von want2cu

hallo christian,

mit einem Makro und VBA kann ich dir leider nicht weiterhelfen, Aber vielleicht gibt es ja noch eine andere Aternative mit einer Formel oder einem ganz anderen Lösungsweg.

Was willst du denn erreichen?
Wenn du magst, schick mir doch mal eine kleine Beispieltabelle, ich würde dann gerne mal versuchen, ob es eine Lösung dafür gibt.

CU
Klaus

Antwort 4 von YoMan

Hi,

sub workbook_open()

set tb = thisWorkbook.Worksheets("Keine Ahnung")

x = 1 'Ab Zeile 1
y = 1 'Ab Spalte A

do while tb.cells(x,y) <> ""

y=y+1 ' nächste Spalte gleiche Zeile
Loop 'weiter gehts

'Nun hamma eine Leere Zelle und schreiben:
tb.cells(x,1).Formula = "was auch immer...."

End sub

Grüsse
Yo

Antwort 5 von sicci

Hallo Chrigel,

'Wenn' heißt in VBA 'if', aber das ist sicher nicht Deine Schwierigkeit bei der Übersetzung Deiner Formel.
Um Deine konkrete Formel umzusetzen mach folgendes: Schreib sie einmalig in eine Zelle, hier zB A40, und lasse Dir im Direktfenster per:
Debug.print range("A40").formula.
die Übersetzung anzeigen, die Du dann mit evtll. Variablen auffüllen/anpassen kannst.

Gruß
sicci

Antwort 6 von sicci

Hallo Christian,

Noch ein Beispiel (inkl. kleiner Verkürzung Deines Makros):

Sub Makro1()
...
Dim Zelle As Object
Dim Spalte As Object
Set Spalte = ActiveSheet.Columns(1)
For Each Zelle In Spalte.Cells
If Trim(Zelle.Value) = "" Then
Zelle.Offset(0, 1).Formula = "=IF(SUM(A1:A12)>100,""ja"",""nein"")"
Exit For
End If
Next
End Sub

Debug.Print gibt für die Beispiel-Wenn-Formel =IF(SUM(A1:A12)>100,"ja","nein") aus. Dies kann direkt in die Anführungszeichen der Formula-Anweisung im Makro eingesetzt werden, nur die Anführungszeichen innerhalb der Formel (die VBA ja als Anfang-/Ende-Tags erkennt) müssen verdoppelt werden.

Gruß
sicci

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: