Clever-Excel-Forum

Normale Version: VBA-Code in nicht angewähltem Tabellenblatt ausführen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hi, kann man einen VBA-Code in einem nichtausgewähltem Tabellenblatt auführen?

Das ist mein Code:
Code:
Sheets("Rech").Select
    Range("C53").Select
    ActiveCell.FormulaR1C1 = "=PunkteTool!R[-20]C[1]/86400"
Er funktioniert einwandfrei.

Wenn ich das Tabellenblatt "Rech" jedoch ausblende, erhalte ich folgende Fehlermeldung:
[attachment=33494]
Er kann das Tabellenblatt nicht anwählen, da es ja unsichtbar ist.

Doch ich möchte, dass die Änderung in Range!C53 auch ausgeführt wird, ohne dass man Tabelle "Rech" auswählt. Also das Tabellenblatt soll in Excel ausgeblendet sein. Und trotzdem soll der Code ausgeführt werden. Also quasi unsichtbar dort geändert werden.

Geht so etwas? Ein Trick wäre, das Tabellenblatt kurz einzublenden und nach der Zelländerung wieder auszublenben:
Code:
Sheets("Rech").Visible = True
    Sheets("Rech").Select
    Range("C53").Select
    ActiveCell.FormulaR1C1 = "=PunkteTool!R[-20]C[1]/86400"
    Sheets("Rech").Visible = False
    Sheets("Zeit").Select

Aber gibt es da keine Lösung, wo man in VBA schon mitgibt: "Mach trotzdem die Änderung - ohne es einzublenden"?
Hallo,

".select" geht nur im aktiven Sheet, besser ist es nicht zu selektieren und vollständig zu referenzieren:

[code]
Sheets("Ziel").Range("A10") = Sheets("Quelle").cells(10,10)
[code]

mfg
Danke Dir, Fennek. Das klappt so halb:

Code:
Sheets("Rech").Range("C53") = ActiveCell.FormulaR1C1 = "=PunkteTool!R[-20]C[1]/86500"

Er mecker jetzt nicht mehr, weil er die Tabelle nicht angewählt hat. Er schreibt auch etwas ins Feld Rech!C53. Jedoch anstatt er dort "=PunkteTool!D33/86400" hineinschreibt, steht dort einfach nur "FALSCH".
Versuch es mal so.
Code:
Sheets("Rech").Range("C53").FormulaR1C1 = "=PunkteTool!R[-20]C[1]/86500"
Ach logisch. Aktiv ist sie ja nicht. Danke Dir!