Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Formel in VBA umsetzen
05.04.2016 11:18:01
Joachim
Hallo,
anbei eine Datei mit vielen Formeln, die ich gerne in VBA nachbauen möchte, da die Datei mit den Formeln sehr groß wird. Am Ende des Makros würde ich gerne die Formeln durch Werte ersetzen (=das ist nicht das Problem).
Ich dachte da an 2 Schleifen, mit i=3 bis 77 für die Zeilen und j=5 bis 35 für die Spalten E bis AI. Eine Schleife hab ich geschafft, aber das 'Verknoten' mit der 2. nicht. Da bin ich gescheitert.
https://www.herber.de/bbs/user/104773.xlsx
Gruß
Joachim

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

Betreff
Datum
Anwender
Anzeige
AW: Formel in VBA umsetzen
05.04.2016 11:35:37
Steve
Hallo Joachin,
deine Formel hast du doch in E3 geschrieben und nach rechts erweitert und anschließend die Zeile nach unten, richtig? Das lässt sich auch mit VBA nachbauen, nennt sich Autofill. Geht wie per Hand auch immer nur rüber oder runter/hoch, aber nicht beides gleichzeitig.
    Range("E3").FormulaLocal = "=WENN(UND(E$2>=$B3;E$2
lg Steve

AW: Formel in VBA umsetzen
05.04.2016 11:44:23
Joachim
Hallo Steve,
na das ist ja mal ne geile Sache! Von AutoFill hatte ich bisher noch nichts gehört.
Klappt suuuper und total einfacher Code.
DANKE
Joachim

AW: Formel in VBA umsetzen
05.04.2016 11:51:27
Steve
Du kannst allerdings auch alles Zelle für Zelle durchgehen, jedoch ist das komplizierter. Am besten eignet sich hier die Formel in Z1S1-Schreibweise (.FormulaR1C1) zu benutzen. Die Local-Variante habe ich gewählt um die Formel zu Demonstrationszwecken in deutsch schreiben zu können.
Sub Test()
Dim i As Long, j As Long
For i = 3 To 77
For j = 5 To 35
Cells(i, j).FormulaR1C1Local = "=Wenn(Und(Z2S>=ZS3;Z2S
Absolute Bezüge (Dollarzeichen) werden als Zahl hinter den Buchstaben für Zeile bzw. Spalte geschrieben. Relative Bezüge kommen in eckige Klammern hinter den Buchstaben, hier jedoch nicht notwendig gewesen, da deine Formel einfach ist. Keine Zahlenangabe hinter dem Buchstaben oder ein komplett fehlender Buchstabe bedeuten die aktive Zeile/Spalte der Zeile werden genommen:
"Z2S" in der Zelle J17 würde also "J$2" ergeben, aber genauso hätte ich nur "Z2" schreiben können.
"Z[2]S" würde zwei Zeilen unter der aktuellen Zelle (relativ) in der gleichen Spalte ergeben. In J17 also J19.
lg Steve

Anzeige
AW: Formel in VBA umsetzen AutoFill unnötig
05.04.2016 12:06:31
Daniel
Hi
Autofill ist in VBA meistens unnötig.
Wenn nur eine Formel geschrieben werden soll, kann man die in alle Zellen gleichzeitig schreiben.
Im Prinzip reicht:
Range("E3:AI77").FormulaLocal = "=WENN(UND(E$2>=$B3;E$2
wenn man dann noch die Formeln gleich durch Werte ersetzen will:
With Range("E3:AI77")
.FormulaLocal = "=WENN(UND(E$2>=$B3;E$2
in VBA bietet es sich normalerweise an, die Formeln in R1C1 und internationaler Schreibweise zu schreiben:
With Range("E3:AI77")
.FormulaR1C1 = "=IF(AND(R2C>=RC2,R2C
Gruß Daniel
Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige