Aufrufendes Blatt löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Aufrufendes Blatt löschen
von: TS
Geschrieben am: 18.05.2015 09:53:23

Hallo Allerseits,
ich starte einen Dialog über die SelectionChange Funktion eines Worksheets.
If (Target.Column = 8) And (Target.Row = 2) Then
Bearbeiten.Show
End If
In diesem Dialog gibt es eine Option, das Sheet selbst zu ändern - Vorgehensweise:
1. ein Anderes vor das Vorhandene kopieren
2. das Alte - aufrufende - Blatt löschen
3. das neu Kopierte umbenennen (Infos Name etc. kommen aus dem Dialog)
Problem ist, daß Excel hier immer nach dem Löschen des Altblattes abschmiert. Evtl. ist das fehlende aufrufende Element (das Alte gelöschte Blatt) die Ursache.
Beim Debuggen kommt auch die Meldung: "Wechsel in den Haltemodus ist zu diesem Zeitpunkt nicht möglich"
Kann man hier eine evtl. Verbindung trennen? Hat jemand eine andere Idee, den Vorgang umzusetzen?
VG Tom

Bild

Betrifft: AW: Aufrufendes Blatt löschen
von: Uwe Küstner
Geschrieben am: 18.05.2015 10:19:30
Hallo Tom,
starte die UserForm indirekt über eine Prozedur in einem allgemeinen Modul:

'Modul der Tabelle
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If (Target.Column = 8) And (Target.Row = 2) Then
    ZeigeBearbeiten
  End If
End Sub
'allgemeines Modul
Sub ZeigeBearbeiten()
  Bearbeiten.Show
End Sub
Gruß Uwe

Bild

Betrifft: AW: Aufrufendes Blatt löschen
von: Daniel
Geschrieben am: 18.05.2015 10:19:57
Hi
das Problem ist, dass du wahrscheinlich einen laufenden Prozess killst, wenn du das Blatt löschst während das das Selection-Change-Makro noch auf seinen Abschluss wartet.
probiere mal eine der folgenden Möglichkeiten:
a) setze für die Userform die Eigenschaft: ShowModal = False oder öffne sie mit Bearbeiten.Show 0
das bewirkt, dass das Selection-Change-Makro erst beendet wird, bevor die Userform geöffnet wird.
allerdings kannst du dann in der Mappe weiter arbeiten, während die Userform geöffnet ist
b) schreibe für das Löschen der Datei ein eigenes Makro in einem allgemeinen Modul und starte dieses Löschmakro von der Userform aus mit Application.Ontime Now, "Makroname"
VBA wartet dann mit der Ausführung dieses Makros, bis alle laufenden Makros abgeschlossen sind.
Gruß Daniel

Bild

Betrifft: AW: Aufrufendes Blatt löschen
von: TS
Geschrieben am: 18.05.2015 11:12:41
Hallo,
vielen Dank, funktioniert.
Erstmal der Hinweis war wichtig, das Ganze über ein allg. Modul umzuleiten.
Funtkioniert dann allerdings auch nur mit Daniels Ansatz mit Application.OnTime Now.
VG Tom

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Aufrufendes Blatt löschen"