Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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

Formeln mit Makro eintragen

Formeln mit Makro eintragen
WalterK
Hallo,
in der Recherche habe ich eine Möglichkeit gefunden, Formeln mittels eines Makros in bestimmte Zellen eintragen zu lassen.
Hier der Code mit den Formeln:
Sub test()
Sheets("Ankündigungsschreiben").Range("A9").Select
Selection.FormulaR1C1 = "=WENN(ODER(ISTFEHLER(T12);T12
Allerdings kommt bei der Zeile mit der langen Formel der Debugger und meldet: Laufzeitfehler 1004: Anwendungs- oder objekdefinierter Fehler
Mache ich etwas falsch? Gibt es eine bessere Methode? Für mich als VBA-Laie wäre es natürlich gut, wenn die Formeln im Makro "normal" geschrieben sind.
Servus, Walter

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

Betreff
Benutzer
Anzeige
AW: Formeln mit Makro eintragen
21.11.2009 20:08:08
Josef
Hallo Walter,
wenn du die Formel auf deutsch eintragen willst' musst du .FormulaLocal verwenden und die "" musst du verdoppeln """".
Und du brauchst eine Zelle nicht selektieren um eine Formel einzutragen.
Sub test()
  Sheets("Ankündigungsschreiben").Range("A9").FormulaLocal = _
    "=WENN(ODER(ISTFEHLER(T12);T12<=2;Hilfstabelle!$C$1=0);""DIENSTGEBERNAME EINGEBEN"";WENN(INDEX(Hilfstabelle!$H:$H;VERGLEICH(INDIREKT(""Hilfstabelle!A""&$T$12);Mannschaft;0))="""";"""";INDEX(Hilfstabelle!$H:$H;VERGLEICH(INDIREKT(""Hilfstabelle!A""&$T$12);Mannschaft;0))))"
  Sheets("Ankündigungsschreiben").Range("P6").Formula = "=TODAY()"
End Sub

Gruß Sepp

Anzeige
Danke Sepp, passt! Servus, Walter
21.11.2009 20:11:07
WalterK
AW: Formeln mit Makro eintragen
21.11.2009 20:18:51
Daniel
HI
- Wenn du FormulaR1C1 verwendest, muss die Formel im Code in internationaler schreibweise angegeben werden, dh englische Formeln, Komma als Trennzeichen und Punkt als Dezimalzeichen
- Wegen dem Zusatz R1C1 müssen die Zellbezüge in der R1C1-Schreibweise eingegeben werden (deutsch Z1S1), dh nicht $A$1, sondern R1C1, Relative Zellbezüge dann so: R[1]C[1]
- wenn du im Makro eine Zeichenfolge angibst und diese Zeichenfolge soll ein Anführungszeichen enthalten, dann muss dieses Anführungszeichen verdoppelt werden, damit Excel dieses Anführungszeichen von demjenigen unterscheiden kann, daß den String beendet.
diese Prinzipien hast du in deinem Code manchmal, aber eben nicht immer angewendet.
ich würde das ganze einfach so machen:
1. die Formel vollständig und funktionsfähig von Hand in die Zelle A9 eintragen
2. im direktfenster im VBA-Editor diesen Befehl eintippen: ?Range("A9").FormulaR1C1
3. das Ergebnis in den Code kopieren
4. die Anführungszeichen doppeln (geht. z.B. mit der ERSETZEN-Funktion des Editors, hierbei auf die Einstellung "Markierten Text" achten, diese wird nicht automatisch angewählt
Gruß, Daniel
ps. Schritt 2 und 4 kannst du auch zusammenfassen, indem du im Direktfenster den Befehl:
?Replace(Range("a9").FormulaR1C1, """", """""")
eintippst.
Anzeige
Besten Dank für Deine Ausführungen, Walter
21.11.2009 21:16:26
WalterK

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige