Discussion:
VBA Formel auf Bereich?
(zu alt für eine Antwort)
Peter Schuerer
2014-07-03 18:40:30 UTC
Permalink
Hallo Claus und Gemeinde,

XL2002.

in $O$3 steht eine Formel und in N3:N stehen Werte.
Ich möchte jetzt die Formel in $O$3 bis an das Ende der Spalte N
kopieren (es werden ständig neue Daten eingefügt).
Wenn ich $O$3 anklicke und auf den schwarzen Punkt unten rechts
doppelklicke, wird die Formel bis zum Ende der Spalte N kopiert.
Wie macht man das mit einem Makro??

Danke und Gruß
Peter
Claus Busch
2014-07-03 18:54:05 UTC
Permalink
Hallo Peter,
Post by Peter Schuerer
in $O$3 steht eine Formel und in N3:N stehen Werte.
Ich möchte jetzt die Formel in $O$3 bis an das Ende der Spalte N
kopieren (es werden ständig neue Daten eingefügt).
Wenn ich $O$3 anklicke und auf den schwarzen Punkt unten rechts
doppelklicke, wird die Formel bis zum Ende der Spalte N kopiert.
das macht man mit dem Makro so:
Sub Formel2()
Dim LRow As Long

LRow = Cells(Rows.Count, "N").End(xlUp).Row
Range("O3").AutoFill Range("O3:O" & LRow)
End Sub

Du kannst aber auch gleich die Formel in den ganzen Bereich schreiben,
was ich vorziehen würde. Du musst nur in diesem Code deine Formel
anpassen (Mit FormulaLocal kannst du die Formel auch auf Deutsch
eingeben. Ich bevorzuge Formula, da VBA englisch spricht und sich die
Formel dann in allen Sprachversionen anpasst):

Sub Formel()
Dim LRow As Long

LRow = Cells(Rows.Count, "N").End(xlUp).Row
Range("O3:O" & LRow).Formula = "=A1*N1"
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-07-03 19:07:24 UTC
Permalink
Hallo Peter,
Post by Claus Busch
Du kannst aber auch gleich die Formel in den ganzen Bereich schreiben,
was ich vorziehen würde.
hier noch der Unterschied zwischen Formula und FormulaLocal mit einer
Funktion:

Sub Formel()
Dim LRow As Long

LRow = Cells(Rows.Count, "N").End(xlUp).Row
Range("O3:O" & LRow).Formula = "=SumIf(" & Range("N3:N" & LRow).Address
& _
", N3 ," & Range("A3:A" & LRow).Address & ")"
End Sub


Sub Formel3()
Dim LRow As Long

LRow = Cells(Rows.Count, "N").End(xlUp).Row
Range("O3:O" & LRow).FormulaLocal = "=Summewenn(" & Range("N3:N" &
LRow).Address & _
"; N3 ;" & Range("A3:A" & LRow).Address & ")"
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Peter Schuerer
2014-07-05 12:50:25 UTC
Permalink
Hallo Claus,
Post by Claus Busch
Du kannst aber auch gleich die Formel in den ganzen Bereich schreiben,
was ich vorziehen würde.
Ich bin Deinem Vorschlag gefolgt und es funktioniert wunderbar.

Danke und Gruß
Peter

Lesen Sie weiter auf narkive:
Loading...