Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sheets.Delete-Ereignis

Sheets.Delete-Ereignis
23.06.2005 09:32:24
Grimwulg
Hallo Forum,
ich generiere dynamisch Sheets und hätte gerne, dass jedes dieser Sheets einen Event-Handler erhält, damit ich auf das Löschen dieses Sheets reagieren kann.
Wenn der Benutzer also ein Sheet löscht, muss ich einen Code ausführen, um eine interne Sheet-Tabelle, in der ich alle Sheets aufgelistet habe, anzupassen.
Geht das mittels VBA überhaupt?
Viele Grüße,
Torben

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheets.Delete-Ereignis
23.06.2005 09:54:23
Matthias
Hallo Torben,
nutze doch das Workbook_SheetDeactivate()-Ereignis, dann aktualisierst du die Liste zwar auch mal unnötigerweise, aber das macht ja wahscheinlich nichts.
Gruß Matthias
AW: Sheets.Delete-Ereignis
23.06.2005 10:05:52
Grimwulf
Hallo Matthias,
danke für den Tip, aber das gefällt mir nicht richtig :-)
Zumindest fällt mir keine performante Umsetzung ein, aber vielleicht kannst Du mir weiterhelfen.
Ein Sheet mit Namen "Baustellen_intern" enthält in der Spalte A die Namen der BaustellenSheets, die der Benutzer automatisch anlegen kann. Ich habe in der Spalte A also einbe Übersicht über alle Baustellensheets. Löscht der Benutzer ein Baustellensheet, möchte ich die betreffende Zeile auch aus dem "Baustellen_intern"-Sheet löschen.
Ich habe bislang keine Methode gefunden, um zu prüfen, ob ein Sheet existiert, momentan behelfe ich mir mit einem Workaround. Ich selektiere ein Sheet mit einem bestimmten Namen, und wenn kein Fehler kommt, existiert das Sheet folglich. Ist der Error-Code aber 9 (glaube ich :-)), dann weiß ich, dass das Sheet nicht (mehr) existiert und folglich könnte ich den betreffenden Eintrag in der "Baustellen_intern"-Liste entfernen.
Nun dauert das Selektieren der Sheets zwecks Prüfung schon ein wenig, und der Schirm flackert. Das kann ich nicht bei jedem Sheetwechsel dem Nutzer zumuten. Anders sähe es aus, wenn ich leichter prüfen könnte, ob ein Sheet existiert.
Ich hoffe, Du verstehst, was ich meine
Viele Grüße,
Torben
Anzeige
AW: Sheets.Delete-Ereignis
23.06.2005 10:13:11
Matthias
Hallo Torben,
Du musst das Blatt ja nicht aktivieren zum Testen.
eine andere Möglichkeit:

Function BlattExistiert(n As String)
Dim dummy As String
On Error Resume Next
dummy = Sheets(n).Name
If Err.Number > 0 Then
Err.Clear
BlattExistiert = False
Else
BlattExistiert = True
End If
End Function

Gruß Matthias
Danke, das schaue ich mir an
23.06.2005 10:36:36
Grimwulf
Vielen Dank Matthias, damit werde ich mich mal auseinandersetzen.
Viele Grüße,
Torben

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige