Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sheets löschen, Ereignis?

Sheets löschen, Ereignis?
24.09.2004 10:47:41
Dieter
Guten Morgen an alle Excelianer,
ich tüfftel an folgendem Problem:
wie kann ich feststellen, ob der Anwender eines Workbooks ein oder mehrere Sheets löscht?
Meines Wissens gibt es dazu kein Ereignis?!
Gruß aus den sonnigen Donauauen
AW: Sheets löschen, Ereignis?
Dr.
Verhindere grundsätzlich das Löschen, dann weisst Du auch, dass keins gelöscht wurde. :-)
AW: Sheets löschen, Ereignis?
Dieter
Hallo Dr.
und wie verhindere ich, dass der Anwender ein Sheet killt?
Gruß Dieter
AW: Sheets löschen, Ereignis?
Dr.
Das kommt auf die Schlauheit der Anwender an. Du kannst die Blattschutzfunktion nehmen, die Register ausblenden, die rechte Maustaste deaktivieren...Da gibt es viele Möglichkeiten, aber wenn ein Anwender die nötige kriminelle Energie mitbringt, hat sich das eh.
AW: Sheets löschen, Ereignis?
Dieter
Hallo Dr.
das hat nichts mit der Schlauheit oder mit krimineller Energie zu tun, er darf ja löschen, nur das Programm sollte es merken!!!
Anzeige
AW: Sheets löschen, Ereignis?
Dr.
Ah soooooo. :-) Damit andere Routinen fehlerfrei bleiben. Dann bleint Dir wohl nur der Weg, den Ulf vorgeschlagen hat, nämlich irgendwo ein "Verzeichnis" abzulegen, das periodisch upgedatet und abgeglichen wird.
AW: Sheets löschen, Ereignis?
Dieter
Hallo Dr.
diese Idee hat was, danke,
AW: Sheets löschen, Ereignis?
ypsilon
hi Dieter,
auch beim löschen wird deactivate ausgelöst
jetzt weiss ich aber nicht ob es bei excel 97 schon das ereignis
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
gibt
cu Micha
AW: Sheets löschen, Ereignis?
Sven
Excel gut, VBA gut und dann solch eine Frage?
Gruß Sven
AW: Sheets löschen, Ereignis?
Dieter
Na du Schlaumeier,
dann gib doch mal eine vernünftige Lösung
Anzeige
AW: Sheets löschen, Ereignis?
Ulf
Ganz Recht, da gibts kein Ereignis. Am einfachsten einen API-Timer erstellen, mit dessen
Hilfe du periodisch überwachst, ob sich an der Blattanzahl oder/und den Blattnamen was
geändert hat.
Ulf
AW: Sheets löschen, Ereignis?
ransi
hallo dieter
versuch doch mal so:
Option Explicit
Public anzahlblatt As Integer

Private Sub Workbook_Open()
anzahlblatt = Worksheets.Count
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If anzahlblatt > Worksheets.Count Then MsgBox "Blatt gelöscht"
anzahlblatt = Worksheets.Count
End Sub

ransi
Anzeige
AW: Sheets löschen, Ereignis?
Dieter
Hallo ransi
danke für deinen Beitrag.
Die Sache hat blos einen Haken, der Anwender kann während der Sitzung Sheets hinzufügen und auch löschen.
Nur, das Löschen löst kein Ereignis aus!
Gruß Dieter
AW: Sheets löschen, Ereignis?
Udo
Was soll überhaupt passieren, wenn das Löschen eines Blatts festgestellt wurde?
Udo
AW: Sheets löschen, Ereignis?
Dieter
https://www.herber.de/bbs/user/11258.xls
Hallo Udo
ich glaub, ich muß mal ein Beispiel hochladen,
zur Erklärung:
der Anwender kann, wenn das 1. Blatt voll ist, ein weiteres anfordern usw.
das 1. Blatt hat den Namen "Blatt1", das nächste "Blatt2" usw. Diese Blattnummerierung steht auch rechts oben im Sheet. Desweiteren wird die Endsumme immer auf das letzte Blatt geschrieben.
Problem:
Sollte der Anwender irgendein Blatt, aus welchen Gründen auch immer, löschen, so müßte die Blattbeschriftung(oben rechts im Sheet) und auch die SheetsNamen berichtigt werden, also immer aufsteigend Blatt1, Blatt2 usw. (keine Lücken). Die Endsummenermittlung stellt keine Schwierigkeit dar.
Gruß Dieter
Anzeige
AW: Sheets löschen, Ereignis?
Dieter
sorry, hab vergessen, das Kennzeichen von "noch offen" zu setzen
AW: Sheets löschen, Ereignis?
24.09.2004 16:47:49
Nepumuk
Hallo Dieter,
belege doch die Buttons zum löschen der Tabelle mit einem eigenen Makro. Dann hast du die volle Kontrolle.
Gruß
Nepumuk
AW: Sheets löschen, Ereignis?
Dieter
Hallo Nepumuk
danke für Deinen Beitrag.
Zu diesem Entschluß bin ich auch gekommen, ist nur sehr aufwändig, da ja nicht nur die Standardmenüleiste (ist einfach) umzuprogrammieren ist, sondern bei den jeweiligen Sheets, die evtl. eingefügt werden, der Code für das Ply-Kontextmenü (Menü bei den "Reitern" der Sheets) mitgegeben werden muß. Außerdem darf das "Blatt1" nicht gelöscht werden (nochmal anderer Code).
Ich hatte halt die Hoffnung, irgendeinen schlauen Einfall zu bekommen und nicht, wie einmal geschehen, die doofe Antwort: Excel gut?.
Aber auch solche "Experten" gibts in diesem Forum.
Ich bin aber wirklich froh, dass es auch sehr gute Forumsteilnehmer, du gehörst auf alle Fälle dazu, gibt
Liebe Grüße von der "blauen" Donau
Dieter
Anzeige
AW: Sheets löschen, Ereignis?
24.09.2004 19:16:09
Nepumuk
Hallo Dieter,
der Aufwand ist überschaubar:


Option Explicit
Public Sub Dieters_SET()
    Dim myCommandBar As CommandBar, myCommandBarControl As CommandBarControl
    For Each myCommandBar In CommandBars
        For Each myCommandBarControl In myCommandBar.Controls
            Set myCommandBarControl = myCommandBar.FindControl(ID:=847, Recursive:=True)
            If Not myCommandBarControl Is Nothing Then myCommandBarControl.OnAction = "Dieters_Makro"
        Next
    Next
End Sub
Public Sub Dieters_RESET()
    Dim myCommandBar As CommandBar, myCommandBarControl As CommandBarControl
    For Each myCommandBar In CommandBars
        For Each myCommandBarControl In myCommandBar.Controls
            Set myCommandBarControl = myCommandBar.FindControl(ID:=847, Recursive:=True)
            If Not myCommandBarControl Is Nothing Then myCommandBarControl.Reset
        Next
    Next
End Sub
    
Public Sub Dieters_Makro()
    MsgBox "Take your fucking fingers off!", 48, "Don't do this"
End Sub


Gruß
Nepumuk
Anzeige
AW: Sheets löschen, Ereignis?
Dieter
Hallo Nepumuk
Ein ganz dickes DANKE für Deinen Denkanstoss!
Gruß Dieter
AW: Sheets löschen, Ereignis?
ransi
hallo dieter
ich habs mal so probiert:
rechte maus auf tabellenreiter und löschen.
Bearbeiten Blatt löschen.
dann wird doch ein anderes sheet aktiviert.
jetzt kannst du doch wieder worksheets.count vergleichen mit anzahlblatt.
wenn ein blatt über vba mit sheets(i).delete gelöscht wird, wüsste ich nicht wie es gehen könnte.
ransi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige