Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

in anderer Mappe Blatt löschen

Betrifft: in anderer Mappe Blatt löschen von: Wolfgang
Geschrieben am: 01.04.2008 07:03:35

Hallo,
mit untenstehendem Code wird auf eine "fremde", am Bildschirm geöffnete Mappe zugegriffen und daraus Daten eingelesen.- Wäre denkbar, dass bevor der Code startet und Daten einliest, zunächst überprüft wird, ob sich in der "Quellmappe" ein Tabellenblatt mit Namen "Telnehmerliste" befindet und wenn ja, dieses Blatt -ohne Rückfrage- darin gelöscht wird? - Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

Hier auszugsweise der Code:

Private Sub UserForm_Initialize()
Dim objMappe As Workbook
Dim objTabelle As Worksheet
Dim intI As Integer
On Error GoTo Abbrechen
Set objWbZiel = ThisWorkbook
'Auswahlliste für Combobox Quelldateien erstellen
With Me.cboQuelleMappe
For Each objMappe In Application.Workbooks
Select Case objMappe.Name
'Namen der nicht wählbaren Mappen
Case objWbZiel.Name
'do nothing
Case Else
'Nur die sichtbaren Mappen in die Auswahlliste aufnehmen
If Application.Windows(objMappe.Name).Visible = True Then
.AddItem objMappe.Name
End If
End Select
Next
If .ListCount = 0 Then
MsgBox "Es wurde noch keine Quelldatei geöffnet!"
Else
'1. Eintrag in Liste wählen
.ListIndex = 0
End If
End With

  

Betrifft: AW: in anderer Mappe Blatt löschen von: Hans W. Herber
Geschrieben am: 01.04.2008 07:30:43

Hallo Wolfgang,

die Frage ist, ob die UserForm noch geöffnet ist, wenn die Daten eingelesen werden. Wenn ja, kann mit

Call DeleteTab

die nachfolgende Subprozedur aufgerufen werden:

Sub DeleteTab()
   Application.DisplayAlerts = False
   On Error GoTo ERRORHANDLER
   Workbooks(cboQuelleMappe.Text).Worksheets("Teilnehmerliste").Delete
ERRORHANDLER:
   Application.DisplayAlerts = True
End Sub


Wenn nein, muss die betreffende Arbeitsmappe anders referenziert werden.

Gruss hans


  

Betrifft: AW: in anderer Mappe Blatt löschen von: Beverly
Geschrieben am: 01.04.2008 07:34:47

Hi Wolfgang,

versuche es hiermit

    If Application.Windows(objMappe.Name).Visible = True Then
        .AddItem objMappe.Name
        Application.DisplayAlerts = False
        On Error Resume Next
        Set objTabelle = objMappe.Worksheets("Teilnehmerliste") 
        If Err.Number = 0 Then objTabelle.Delete
        On Error GoTo 0
        Application.DisplayAlerts = True
    End If




GrußformelBeverly's Excel - Inn


  

Betrifft: AW: in anderer Mappe Blatt löschen von: Gerd L
Geschrieben am: 01.04.2008 08:04:37

Hallo Wolfgang,

mache für diesen Zweck eine eigene Prozedur. Dann kann deren "Call" im Hauptmakro
unter einen bestimmten "Case" im "Select Case" geschrieben werden.

Sub main()
Dim objMappe As Workbook

For Each objMappe In Application.Workbooks
    
    Call Tabellennrdrei_löschen(objMappe)

Next

End Sub




Sub Tabellennrdrei_löschen(objMappe As Workbook)

Dim wks As Worksheet

For Each wks In objMappe.Worksheets
    
    If wks.Name = "Tabelle3" Then
        Application.DisplayAlerts = False
        wks.Delete
        Application.DisplayAlerts = True
    End If

Next

End Sub



Gruß Gerd


  

Betrifft: Danke - 1 Frage noch an Euch 3 von: Wolfgang
Geschrieben am: 01.04.2008 15:58:29

Hallo Hans, Gerd und Beverly,
zunächst Entschuldigung, dass ich mich jetzt erst zurückmelde. Ich hatte nun der Reihe nach Eure Codes eingebaut. Irgendwie funktionieren die manchmal und manchmal auch nicht. Kann es evtl. im Rahmen der Vernetzung sein, dass über den Code nicht immer erkannt wird, ob da tatsächlich noch eine andere Anwendnung geöffnet ist? - Von ca. 10 jeweiligen Versuchen, hat es ca. 2x geklappt und das Tabellenblatt wurde gelöscht. Danke schon jetzt wieder für die Rückmeldungen.
Gruß - Wolfgang.


  

Betrifft: AW: Danke - 1 Frage noch an Euch 3 von: Gerd L
Geschrieben am: 01.04.2008 20:37:33

Hhmm Wolfgang,

schwierige Frage.

Lasse Dir mal mit Debug.Print die Tabellenblattnamen im Direktfenster ausgeben anstatt zu löschen,
um festzustellen, dass es nicht an unterschiedlichen Schreibweisen der Namen liegt.

Gruß Gerd


 

Beiträge aus den Excel-Beispielen zum Thema "in anderer Mappe Blatt löschen"