Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

wenn sheet aktiv...

Forumthread: wenn sheet aktiv...

wenn sheet aktiv...
04.07.2006 16:17:08
Walter
Guten schönen Sonnen-Dienstag,
ich habe folgende Frage:
Meine Datei heißt: "Werkstatt.xls"
in der Werkstatt ist eine Sheet heißt "Tabelle1", "Tabelle2" und "Reserve".
Nun möchte ich, wenn in der Sheet1 in der Zelle A1 eine 0 steht, das die
Sheet "Reserve" gelöscht wird, per Command-Button.
Das Problem: Ich habe das Modul mit Passwort versehen "WE" UND wenn die Datei "Werkstatt.xls" das 2. mal geöffnet wird, soll geprüft werden,
1. Modul geschützt ?
2. Die "0" in der "Tabelle1 A1"
3. Ist die Sheet vorhanden ? Prüfung, wenn nicht, dann Msgbox.
Ich hatte mal Beispiel, funktioniert nicht.
If ActiveWorkbook.VBProject.Protection And Cells(1, 1) = "0" And _
Tabelle3("Reserve").Enabled = True Then
MsgBox "In Tabelle1 ist die 0, Tabelle3 vorhanden, Passwort vorhanden,
jetzt Löschen ?"
gruß Walter
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn sheet aktiv...
04.07.2006 17:24:01
fcs
Hallo Walter,
unter diese Arbeitsmappe folgendes Makro einfügen, ggf. halt noch ein wenig modifizieren.

Private Sub Workbook_Open()
If ActiveWorkbook.VBProject.Protection And Sheets("Tabelle1").Cells(1, 1) = "0" Then
For Each Tabelle In ActiveWorkbook.Worksheets
'Prüfung ob Tabelle mit Name "Reserve" vorhanden
If Tabelle.Name = "Reserve" Then
If MsgBox("In Tabelle1 ist die 0, Tabelle3 (Reserve) vorhanden, Passwort vorhanden, jetzt Löschen ?", _
vbYesNo + vbDefaultButton2) = vbYes Then
'Löschen des Blattes ohne weiter Rückfragen
Application.DisplayAlerts = False
Sheets("Reserve").Delete
Application.DisplayAlerts = False
End If
Exit For
End If
Next
End If
End Sub

gruss Franz
Anzeige
Funktioniert nicht ganz
04.07.2006 17:46:50
Walter
Hallo Franz,
habe getestet, die msgbox kommt, ich drücke JA und dann kommt Fehlermeldung:
"Laufzeitfehler '9'
Index außerhalb de gültigen Bereich"
Das Button "Beenden" kann man nur anklicken.
Muß man den Schutz aufheben?
Ich habe dein Makro in die Tabelle gesetzt die gelöscht werden soll.
gruß Walter
p.s. Kann man die Schrift des Command-Button auswechseln?
1. Sie müßen Neu starten in Rot
und wenn der Schutz etc. i.o. soll
2. Jetzt können Sie arbeiten.
Anzeige
Hinweis, habe gerade festgestellt
04.07.2006 19:43:23
Walter
Hallo Franz,
habe gerade festgestellt, läuft soweit aber es kommt jetzt:
Laufzeitfehler -2147221080(800401a8)
Automatisierungsfehler
und VisualBasic wird aktiviert. Wenn ich auf beenden drücke ist die Tabelle weg.
So wie ich es möchte.
gruß walter
AW: Hinweis, habe gerade festgestellt
04.07.2006 20:02:28
fcs
Hallo Mathias,
bei mir getestet unter Excel97 lief es problemslos, obwohl noch ein Flüchtigkeitsfehler in der 2. DisplayAlerts-Zeile ist. Hier muss auf True zurückgesetzt werden. Die Fehler-Nummer sagt mir gar nichts. evtl.hilft diese kleine Korrektur ja schon weiter:

Private Sub Workbook_Open()
If ActiveWorkbook.VBProject.Protection And Sheets("Tabelle1").Cells(1, 1) = "0" Then
For Each Tabelle In ActiveWorkbook.Worksheets
'Prüfung ob Tabelle mit Name "Reserve" vorhanden
If Tabelle.Name = "Reserve" Then
If MsgBox("In Tabelle1 ist die 0, Tabelle3 (Reserve) vorhanden, Passwort vorhanden, jetzt Löschen ?", _
vbYesNo + vbDefaultButton2) = vbYes Then
'Löschen des Blattes ohne weiter Rückfragen
Application.DisplayAlerts = False
Sheets("Reserve").Delete
Application.DisplayAlerts = True
End If
Exit For
End If
Next
End If
End Sub

gruss Franz
Anzeige
Immer noch
04.07.2006 20:21:20
Walter
Hallo Franz,
habe verändert, leider noch Fehler, mit der letzten Fehlermeldung.
gruß walter
AW: Immer noch
05.07.2006 08:28:21
Sylvio
Hallo Walter,
ich hab mal noch paar kleine Veränderungen vorgenommen und unter Office 2003 funzt das dann.

Sub Test()
If ActiveWorkbook.VBProject.Protection = 0 And ThisWorkbook.Sheets("Tabelle1").Cells(1, 1) = "0" Then
For Each Tabelle In ActiveWorkbook.Worksheets
'Prüfung ob Tabelle mit Name "Reserve" vorhanden
If Tabelle.Name = "Reserve" Then
If MsgBox("In Tabelle1 ist die 0, Tabelle3 (Reserve) vorhanden, Passwort vorhanden, jetzt Löschen ?", _
vbYesNo + vbDefaultButton2) = vbYes Then
'Löschen des Blattes ohne weiter Rückfragen
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Reserve").Delete
Application.DisplayAlerts = True
End If
Exit For
End If
Next
End If
End Sub

Gruß Sylvio
Anzeige
AW: Immer noch
05.07.2006 08:44:12
Walter
Hallo Sylvio,
habe leider fehlermeldung: "Kompilierungs-Fehler im verbogernem Modul: Tabelle3"
Vielleicht hat noch jemand einen Tip, sonst muß ich halt eine andere Lösung suchen (vielleicht UF).
gruß walter
AW: Immer noch
05.07.2006 12:33:38
Sylvio
Hallo Walter,
dann hau doch den Text der in Tabelle3 als Code steht mal raus! Was passiert dann?
Gruß Sylvio
Anzeige
Habe Lösung gefunden -)
05.07.2006 12:48:34
Walter
Hallo Sylvio,
ich habe das anders geregelt, die Datei anders aufgebaut, brauch kein Makro mehr,
wegen Termin etc. .
DANKE für die Unterstützung,
mfg Walter
;

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