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 zum Zweiten

Excelformel als VBA-Code zum Zweiten
23.01.2016 12:34:53
Pepi
Hallo zusammen
Ich komme nochmals mit meinem Formelproblem (jetzt ein konkreter FAll)
Ich schreibe die Formel =WENN(ABS(A3-B3)>C$2;B3-A3;"") in Zelle C3
und starte dann das Makro
Sub SU_Formel_Kopieren1()
Dim sFo1$, sFo2$
'Variante 1 funktioniert
sFo1 = Cells(3, 3).FormulaR1C1
Range("C4:C10").FormulaR1C1 = sFo1'funktioniert
Stop
'Variante 2 gibt Fehler 1004, Anwendungs- und Objektdefinierter Fehler
sFo2 = "=IF(ABS(RC[-2]-RC[-1])>R2C,RC[-1]-RC[-2],"")" 'Wert aus dem Lokal-Fenster kopiert
Range("C4:C10").FormulaR1C1 = sFo2   'Fehlermeldung
End Sub
Da ich in der Anwendung immer wieder ein leeres Tabellenblatt habe muss ich die Formel in eine Variable bringen.
Obwohl optisch keine Unterschiede erkennbar sind ob ich sFor1 aus der Zelle auslese oder aus dem Lokakfenster des Makroeditors kopiere funktioniert die 2. Variante nicht.
https://www.herber.de/bbs/user/102983.xlsm
vielen Dank für eure Hilfe
Pepi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
""""
23.01.2016 12:40:15
ransi
Hallo,
Mach mal so:
sFo2 = "=IF(ABS(RC[-2]-RC[-1])>R2C,RC[-1]-RC[-2],"""")"
ransi

AW: """"
23.01.2016 13:23:37
Daniel
Zur Erklärung:
Wenn du in einen Textstring ein Anführungszeichen als normales Zeichen des Textes haben willst, so musst du irgendwie kennzeichnen, dass dieses Anführungszeichen zum Text gehört und nicht das Kennzeichen für das Textende ist.
In Excel und VBA muss man hierzu die zum Text gehörenden Anführungszeichen immer doppelt eingeben.
Sprich:
"" ergibt " im Text
" signalisiert das Textende.
Gruß Daniel

AW: """"
23.01.2016 17:50:23
Pepi
Hallo zusammen, danke für eure Tipps. Ihr habt vermutlich die Gänsefüsschen hinzugefügt, wahrscheinlich funktioniert es in diesen Einzelfall auch. Ich suche aber eine Möglichkeit, wie ich eine noch so komplexe Formel mit einem Makro einlesen und im vba Code verwenden und speichern kann ohne jedes mal von Hand herumpröbeln zu müssen.
Mfg Pepi

Anzeige
AW: """"
23.01.2016 18:10:15
Daniel
Hi
ich erstelle solche komplexen Formeln normal in er Zelle.
dann lasse ich sie mir im Direktfenster mit
?Replace(Selection.FormulaR1C1, """", """""")
anzeigen, das Replace doppelt die ", so dass ich den angezeigten Text ohne Änderung in den Code kopieren kann.
Gruß Daniel

AW: """"
24.01.2016 11:57:41
Pepi
Hallo liebe Jungs
Ihr habt Euch ganz mächtig ins Zeug gelegt - vieles ist mir bewusst geworden
Ich werde in der nächsten Woche diese Codegenerierung ausführlich testen.
Allen vielen Dank und einen schönen Sonntag.
mfg
Pepi

Na und, genau das hast du ja mit der Kopie ...
23.01.2016 18:11:42
Luc:-?
…auch und dann aber falsch gemacht, Pepi,
das ist schließlich auch Handarbeit. Deine Variante1 fktioniert doch ohne Nachbesserung (sFo1 = Cells(3, 3).FormulaR1C1)! Was willst du also?
Bei Rückübertragung macht VBA dann auch nichts falsch! Willst du die Fml aber nicht erst in eine Zelle eintragen, sondern dem Pgm als Constante mitgeben, musst du beachten, was dir gesagt wurde!
Gruß, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige