Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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
Inhaltsverzeichnis

Excelformel als VBA-Code

Excelformel als VBA-Code
14.01.2016 09:47:46
Pepi
Hallo zusammen
Folgende Formel =WENN(ODER(K2 / (1-Q$1) > M2;K2 * R$1 sollte ich in eine VBA-Schleife einbauen, 2 würde dann mit z (ZeilenNr) ersetzt - doch das Umsetzen fällt mir unendlich schwer.
Der Makrorecorder gibt mir folgendes zurück
ActiveCell.FormulaR1C1 = "=IF(OR(R[-1]C[-6] / (1-R1C) > R[-1]C[-4],R[-1]C[-6] * R1C[1] doch auch damit kann ich herzlich wenig anfangen.
bestimmt hat schon mal einer eine Funktion oder Programm entwickelt, das solche Umwandlungen kann. Leider fühle ich mich dazu nicht in der Lage.
Freue mich auf pos. Feedback
mfg
Pepi

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

Betreff
Datum
Anwender
Anzeige
AW: Excelformel als VBA-Code
14.01.2016 10:14:07
Sepp
Hallo Pepi,
willst du die Formel per VBA in die Zellen schreiben, oder die Formel mit VBA nachbilden und das Ergebnis in die Zellen schreiben?
Bitte etwas genauere Infos!
Gruß Sepp

AW: Excelformel als VBA-Code
14.01.2016 11:09:35
fcs
Hallo Pepi,
der Rekorder zeichnet Formeln immer in der R1C1-Schreibweise auf und nicht in der meist von Anwendern eingestellten A1-Schreibweise.
Du hast ja die Formel aufgezeichnet mit Q3 als aktiver Zelle.
D.h. Die Zeile in der Formel (bei dir die 2) ist immer 1 kleiner als die Zeile der Zelle in die die Formel geschrieben werden soll.
Diese Formel musst du nicht per Schleife einzeln in Zellen eintragen. du musst nur die 1. und letze Zeile festlegen in die Formeln eingetragen werden sollen und kannst du in einer Anweisung die Formel im kompletten Bereich einfügen.
Gruß
Franz
Sub Makro2()
' Makro2 Makro
Dim Zeile_1 As Long, Zeile_L As Long
'Zeilen für Formel ermiteln/ setzen
Zeile_1 = 10  'Startzeile
Zeile_L = 20  'letzte Zeile
'Formel in Spalte Q (17) einfügen
'Formel in Q3: =WENN(ODER(K2 / (1-Q$1) > M2;K2 * R$1  Z(-1)S(-4);Z(-1)S(-6) * Z1S(1)  R[-1]C[-4],R[-1]C[-6] * R1C[1] 

Anzeige
AW: Excelformel als VBA-Code
14.01.2016 11:14:43
Daniel
Hi
das passt schon, der Code sollte schon ausführbar sein.
die Doppelten Anführungszeichen sind ok und notwendig.
durch die Verdopplung eines Anführungszeichen erkennt Excel, dass das Anführungszeichen zum Text gehört. Einfache Anführungszeichen kennzeichnen das Ende des Textstrings im Code.
wenn du den Code mit dem Recorder aufzeichnest, dann gehe so vor:
1. markiere alle Zellen, in welche du die Formel nach der Eingabe kopieren willst
2. setze bei der Eingabe möglichst alle Zellbezüge absolut und lasse nur diejenigen relativ, die unbedingt relativ sein müssen.
3. schließe die Eingabe mit STRG+SHIFT+ENTER ab, die Formel wird dann in alle markierten Zellen übernommen (das spart dir später im code die Schleife)
das makro zeichnet die Formel in der R1C1-Schreibweise auf.
hierbei steht das R für Zeile und das C für Spalte (Row/Column), danach folgt bei absoluten Zellbezügen direkt die Zeilennummer.
bei relativen Zellbezügen steht dann der Versatzwert in eckigen klammern.
die R1C1-Schreibweise hat gegenüber der normalen A1-Schreibweise den Vorteil, dass sie relative Zellbezüge auch relativ beschreiben kann, während die A1-Schreibweise auch relative Zellbezüge mit absoluten Adressen beschreiben muss, was zur Folge hat, dass man die Formel nur dann schreiben kann, wenn man die Zielzelle für sie kennt, während man in R1C1 die Formel dann auch für eine unbekannte, noch zu ermittelnde Zielzelle schreiben kann.
Gruß Daniel

Anzeige
AW: Excelformel als VBA-Code
14.01.2016 13:54:53
Pepi
Hallo zusammen
Toll, wie doch das Leben einfach sein kann - warum habe ich nicht schon viel früher meine Sorgen ins HerberForum gelegt.
Viel Spass beim VBA-lern
Pepi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige