Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
776to780
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.
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
Anzeige
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige