Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: nicht aktives Blatt ansprechen in VBA

nicht aktives Blatt ansprechen in VBA
14.10.2005 12:06:21
Toxma
Hallo,
kann jemand helfen?
Gibt es eine Möglichkeit auf Zellen in einem Arbeitsblatt zuzugreifen, wenn dieses ausgeblendet ist? Speziell in Zelle A3 erfolgt die Ausgabe des Speicherdatums der Datei mit VBA und dieses Blatt möche ich ausblenden. Beim einblenden funktioniert des Code leider nicht.
Kann jemand helfen?
Das ist mein Code
Steht im Blatt Tabelle1 und funktioniert eben nur, wenn das Blatt aktive ist.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Range("A3") = Date
Range("A4") = Time
End Sub

If Range("A1").Value = "1" Then
MsgBox "Das Datum Manipuliert", vbOKOnly + vbCritical, Application.UserName
ActiveWorkbook.Close False
'Range("A1") = Calendar1.Value
End If
Danke danke schon mal ist dringend
Toxma
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 12:12:52
Matthias
Hallo Toxma,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Tabelle1")
.Range("A3") = Date
.Range("A4") = Time
End With
End Sub

Gruß Matthias
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 13:03:46
Toxma
Hy,
funktioniert trotzdem nicht, oder ich hab's nicht richtig probiert. Gibt es eventuell noch eine andere Möglichkeit das der VBA Code funktioniert, auch wenn das aktive Blatt nicht aktive ist, d.h mittels VBA ausgeblendet ist, wenn ich die Datei öffne?
Danke Gruß Toxma
Anzeige
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 13:09:14
Matthias
Hallo Toxma,
...oder ich hab's nicht richtig probiert.
Aha. Und, willst du es mal richtig probieren?
Man kann die Zellen so ansprechen, egal ob die Tabelle sichtbar/aktiv ist oder nicht. Geschützt darf sie aber nicht sein.
Ohne With:

Sheets("Tabelle1").Range("A3") = Date
Sheets("Tabelle1").Range("A4") = Time

Gruß Matthias
Anzeige
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 15:55:07
Toxma
Hy,
ich noch mal. Habe es nun mit verschiedenen Dingen versucht aber funktioniert nicht.
Habe mal die Datei angehängt als Beispielmappe unter https://www.herber.de/bbs/user/27503.xls geladen.
Blatt2 befindet sich das Datum und ist ausgeblendet. Bei einem ändern der Systemzeit vor dem aktuellen Datum soll eine Hinweis erscheinen und die Datei sich schließen.
Kannst Du Dir das bitte mal anschauen?
Vielen,vielen Dank
Gruß Toxma
Anzeige
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 16:20:07
Matthias
Hallo Toxma,
da wird die Formel wohl erst nach der Workbook_Open-Prozedur neu berechnet. Warum diesen Umweg:

'Prüfen bei öffnen der Datei MsgBox ist Datum Manipuliert dann Programm beenden
'sonst das Programm weiter fortsetzen
Private Sub Workbook_Open()
If Date < Sheets("Tabelle2").Range("A3") Then
MsgBox "Das Systemdatum wurde verstellt. Bitte korrigieren. Datei wird geschlossen.", vbOKOnly + vbCritical, Application.UserName
ActiveWorkbook.Close False
'Range("A1") = Calendar1.Value
End If
End Sub

Gruß Matthias
Anzeige
AW: nicht aktives Blatt ansprechen in VBA
14.10.2005 16:24:14
Matthias
Hallo Toxma,
und damit der Anwender das ganze nicht mit Strg+Pause umgehen kann:

'Prüfen bei öffnen der Datei MsgBox ist Datum Manipuliert dann Programm beenden
'sonst das Programm weiter fortsetzen
Private Sub Workbook_Open()
If Date < Sheets("Tabelle2").Range("A3") Then
Application.EnableCancelKey = xlDisabled
MsgBox "Das Systemdatum wurde verstellt. Bitte korrigieren. Datei wird geschlossen.", vbOKOnly + vbCritical, Application.UserName
Application.EnableCancelKey = xlInterrupt
ActiveWorkbook.Close False
'Range("A1") = Calendar1.Value
End If
End Sub

Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Zugriff auf nicht aktive Tabellenblätter in Excel


Schritt-für-Schritt-Anleitung

Um Zellen in einem nicht aktiven oder ausgeblendeten Tabellenblatt mit VBA anzusprechen, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Wähle das passende Arbeitsblatt im Projekt-Explorer aus.
  3. Füge den folgenden Code in das entsprechende Modul ein:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Sheets("Tabelle1")
        .Range("A3") = Date
        .Range("A4") = Time
    End With
End Sub
  1. Stelle sicher, dass das Arbeitsblatt "Tabelle1" nicht geschützt ist.
  2. Speichere die Änderungen und teste den Code, indem du die Arbeitsmappe schließt.

Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nur, wenn das Blatt aktiv ist.

    • Lösung: Verwende With Sheets("Tabelle1") oder Sheets("Tabelle1").Range("A3"), um auf Zellen in einem anderen Tabellenblatt zuzugreifen, unabhängig von der Sichtbarkeit.
  • Fehler: MsgBox erscheint nicht, wenn das Datum manipuliert wurde.

    • Lösung: Stelle sicher, dass der Code in der Workbook_Open-Prozedur korrekt implementiert ist:
Private Sub Workbook_Open()
    If Date < Sheets("Tabelle2").Range("A3") Then
        MsgBox "Das Systemdatum wurde verstellt. Bitte korrigieren. Datei wird geschlossen.", vbOKOnly + vbCritical, Application.UserName
        ActiveWorkbook.Close False
    End If
End Sub

Alternative Methoden

Eine alternative Methode, um ein nicht aktives Tabellenblatt anzusprechen, ist die Verwendung von Application.Worksheets. Hier ist ein Beispiel:

Dim ws As Worksheet
Set ws = Application.Worksheets("Tabelle1")
ws.Range("A3").Value = Date

Diese Methode ermöglicht es dir, einfacher auf ein bestimmtes Tabellenblatt zuzugreifen, ohne direkt auf den Namen des Blattes zugreifen zu müssen.


Praktische Beispiele

Wenn du beispielsweise ein Arbeitsblatt hast, das ein Datum in Zelle A3 speichert, kannst du den folgenden Code verwenden, um den Zugriff auf eine Zelle in einem anderen Tabellenblatt zu demonstrieren:

Private Sub Workbook_Open()
    If Date < Application.Worksheets("Tabelle2").Range("A3").Value Then
        MsgBox "Das Systemdatum wurde verstellt. Bitte korrigieren. Datei wird geschlossen.", vbOKOnly + vbCritical, Application.UserName
        ActiveWorkbook.Close False
    End If
End Sub

In diesem Beispiel wird die Zelle A3 in "Tabelle2" überprüft, auch wenn dieses Tabellenblatt nicht aktiv ist.


Tipps für Profis

  • Verwende Application.EnableCancelKey = xlDisabled, um zu verhindern, dass der Benutzer den Code mit Strg+Pause unterbricht.
  • Bei der Verwendung von ActiveWorkbook.Close, sei vorsichtig, um sicherzustellen, dass keine ungespeicherten Änderungen verloren gehen.
  • Nutze die Debug.Print-Funktion, um die Werte von Zellen in der unmittelbaren Fensterkonsole zu überprüfen, falls der Code nicht wie erwartet funktioniert.

FAQ: Häufige Fragen

1. Kann ich auf Zellen in einem geschützten Blatt zugreifen?
Nein, um auf Zellen in einem geschützten Blatt zuzugreifen, musst du zuerst den Schutz aufheben.

2. Was passiert, wenn das Arbeitsblatt nicht existiert?
Der Code wirft einen Laufzeitfehler. Stelle sicher, dass der Blattname korrekt ist.

3. Wie kann ich die Sichtbarkeit eines Blattes steuern?
Du kannst die Sichtbarkeit mit folgendem Code steuern: Sheets("Tabelle1").Visible = False oder True.

4. Funktioniert das auch in älteren Excel-Versionen?
Ja, die Methoden sind in den meisten Excel-Versionen kompatibel, aber stelle sicher, dass du VBA aktivierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige