wie stelle ich es an, dass ein Makro nur auf eine Zelle in einem Tabellenblatt (z.B. A1 Tabelle1) und schon gar nicht auf andere geöffnete Excel-Dateien auch auf A1 Tabelle1 zugreift.
Besten Dank für Antworten!
Sub Test()
With Workbooks("Test.xls").Worksheets("Tabelle1")
.Range("A1").Value = "Test"
End With
End Sub
Sub Test()
Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value = "Test"
End Sub
Sub Test()
With Workbooks("Test.xls").Worksheets("Tabelle1")
.Range("A1").Value = "Test"
End With
End Sub
Sub Test()
Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value = "Test"
End Sub
Sub test()
Range("A1").Value = "test"
End Sub
Sub Updateclock()
NextTime = Now + TimeValue("00:00:10") 'alle 10 Sekunden
[A1] = Time
Application.OnTime NextTime, "Updateclock"
End Sub
Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=NextTime, Procedure:="UpdateClock", Schedule:=False
On Error GoTo 0
Application.StatusBar = False
End Sub
Sub Updateclock()
NextTime = Now + TimeValue("00:00:10") 'alle 10 Sekunden
ThisWorkbook.Worksheets("Tabelle1").Range("A1") = Time
Application.OnTime NextTime, "Updateclock"
End Sub
Öffne den Excel-Editor:
ALT + F11, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen > Modul.Gib den folgenden Code ein, um auf eine spezifische Zelle in einer bestimmten Arbeitsmappe zuzugreifen:
Sub Test()
With Workbooks("DeineDatei.xlsx").Worksheets("Tabelle1")
.Range("A1").Value = "Dein Text"
End With
End Sub
Ersetze DeineDatei.xlsx durch den Namen deiner Datei und Tabelle1 durch den Namen deines Arbeitsblatts.
Speichere und schließe den VBA-Editor:
Strg + S.Führe das Makro aus:
ALT + F8, wähle das Makro aus und klicke auf Ausführen.Makro läuft nicht oder stürzt ab:
Laufzeitfehler:
Makro greift auf andere geöffnete Dateien zu:
ThisWorkbook.Worksheets("Tabelle1").Range("A1").Value = "Test"Verwendung von "Private Subs":
Private Sub Test()
Range("A1").Value = "Test"
End SubDirektes Bearbeiten von geschützten Zellen:
ActiveSheet.Unprotect "Passwort"
' Dein Code hier
ActiveSheet.Protect "Passwort"Aktualisierung einer Zelle alle 10 Sekunden:
Public NextTime As Date
Sub Updateclock()
NextTime = Now + TimeValue("00:00:10")
ThisWorkbook.Worksheets("Tabelle1").Range("A1") = Time
Application.OnTime NextTime, "Updateclock"
End Sub
Stoppen der Uhr:
Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=NextTime, Procedure:="Updateclock", Schedule:=False
On Error GoTo 0
End Sub
Verwende ThisWorkbook:
ThisWorkbook referenzierst du immer die Arbeitsmappe, in der das Makro gespeichert ist. Das ist besonders nützlich, wenn mehrere Dateien geöffnet sind.Fehlerbehandlung:
On Error Resume Next und On Error GoTo 0, um Laufzeitfehler zu handhaben, ohne dass das Makro abbricht.Lektüre und Ressourcen:
1. Kann ich ein Makro für alle Arbeitsmappen gleichzeitig ausführen?
Ja, du kannst ein Makro so gestalten, dass es auf alle geöffneten Arbeitsmappen zugreift, indem du eine Schleife über Application.Workbooks verwendest.
2. Was tun, wenn mein Makro nicht funktioniert? Überprüfe die Referenzen zu den Arbeitsmappen und Arbeitsblättern. Stelle sicher, dass alle Namen korrekt sind und die Datei geöffnet ist.