Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Code in nicht angewähltem Tabellenblatt ausführen
#1
Question 
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:
   
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"?
Antwortento top
#2
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
[-] Folgende(r) 1 Benutzer sagt Danke an Fennek für diesen Beitrag:
  • o0Julia0o
Antwortento top
#3
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".
Antwortento top
#4
Versuch es mal so.
Code:
Sheets("Rech").Range("C53").FormulaR1C1 = "=PunkteTool!R[-20]C[1]/86500"
[-] Folgende(r) 1 Benutzer sagt Danke an Elex für diesen Beitrag:
  • o0Julia0o
Antwortento top
#5
Ach logisch. Aktiv ist sie ja nicht. Danke Dir!
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste