Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

860to864: Prüfen ob mehrere sheets vorhanden

Prüfen ob mehrere sheets vorhanden
11.04.2007 08:52:45
Matthias
Guten Morgen,
ich habe folgendes Problem: Ich möchte prüfen ob mehrere sheets in der Datei vorhanden sind. Wenn ja, dann sollen diese gelöscht werden. Mit einem Tabllenblatt funktioniert das auch gut aber die Datei soll nach mehreren bestimmten Datein such z.B. auch noch: "Stress-Deckblatt (2)"
Hier der Code:

Sub Sheets_control()
Application.DisplayAlerts = False
vorhanden = False
For x = 1 To Sheets.Count
If Sheets(x).Name = "Stress-Deckblatt" Then
Sheets(x).Select
vorhanden = True
Exit For
End If
Next x
If vorhanden Then
Sheets("Stress-Deckblatt").Delete
End If
Application.DisplayAlerts = True
End Sub
Vielen Dank für Eure Hilfe im Voraus
Gruß
Matthias

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 09:10:00
Matthias
Hallo Namensvetter
Also als erstes würde ich mal den Code etwas kürzen.

Sub Sheets_control()
Dim x
Application.DisplayAlerts = False
For x = 1 To Sheets.Count
If Sheets(x).Name = "Stress-Deckblatt" Then Sheets(x).Delete
Next x
Application.DisplayAlerts = True
End Sub
Und um mehrere Blätter zu prüfen würde ich den Namen des Blattes mit der Left-Funktion verbinden.
in etwa so...
If Left(Sheets(x).Name, 16) = "Stress-Deckblatt" Then Sheets(x).Delete
habs aber nicht getestet!
Gruß Matthias
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 09:31:11
Matthias
Hallo ebenfalls Namensvetter,
hm damit kann ich nicht viel anfangen, wei soll denn der Code insgesamt aussehen?
Gruß
Matthias
Anzeige
AW: Probier mal ...
11.04.2007 10:59:00
Matthias
HI,
es springt der Debugger an: Außerhalb des Gültigkeitsbereichs
?
Ansonsten wird nur das Blatt "Stress-Deckblatt" gelöscht.
Gruß
Matthias
PS: wofür steht eigentlich die 16?
AW: Probier mal ...
11.04.2007 11:26:14
Matthias
Hi,
Schade, ich hatte gedacht es klappt, da die Msgbox die Blätter eindeutig identifiziert.
Die 16 steht übrigens für Anzahl der Zeichen.
Userbild
Gruß Matthias
Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 09:18:00
Oberschlumpf
Hi Matthias
Oder versuch es mal so:

Sub Sheets_control()
Dim liIndex As Integer, lboFertig As Boolean
liIndex = 1
Application.DisplayAlerts = False
With ThisWorkbook
Do Until lboFertig = True
Select Case .Sheets(liIndex).Name
Case "Tabelle1" ', "Tabelle3" 'hier anstelle von Tab1 und Tab3 deine zu  _
löschenden Tab-Namen
.Sheets(liIndex).Delete
Case Else
lboFertig = True
End Select
liIndex = liIndex + 1
If liIndex > .Sheets.Count Or .Sheets.Count = 1 Then Exit Sub
Loop
End With
Application.DisplayAlerts = True
End Sub
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 09:32:35
Matthias
Hallo Thorsten,
der Code sieht eigentlich prima aus, leider funktioniert er nicht. Es wird aber auch kein Fehler angezeigt.
Gruß
Matthias
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 10:07:00
Oberschlumpf
Hi Matthias
dann schreib hier mal den Code so auf, wie du ihn übernommen hast.
Ciao
Thorsten
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 10:09:00
Matthias
Hallo Thorsten,
hier der Code:

Sub Sheets_control()
Dim liIndex As Integer, lboFertig As Boolean
liIndex = 1
Application.DisplayAlerts = False
With ThisWorkbook
Do Until lboFertig = True
Select Case .Sheets(liIndex).Name
Case "Stress-Deckblatt", "Stress-Deckblatt (2)"  'hier anstelle von  _
Tab1 und Tab3 deine zu _
löschenden Tab-Namen
.Sheets(liIndex).Delete
Case Else
lboFertig = True
End Select
liIndex = liIndex + 1
If liIndex > .Sheets.Count Or .Sheets.Count = 1 Then Exit Sub
Loop
End With
Application.DisplayAlerts = True
End Sub

Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 10:30:39
Oberschlumpf
Hi Matthias
Hmm...sieht auch jetzt noch ok aus.
Wenn die Böätter genau so heißen, wie du sie in der Case-Bedingung angegeben hast, wundert es mich, dass nix passiert.
Du kannst ja mal im VBE mit F8 den Code Schritt für Schritt durchlaufen lassen und dir
ThisWorkbook.Sheets(liIndex).Name
in der Überwachung anzeigen lassen, ob wirklich alle Blattnamen durchlaufen werden.
anderers Thema:
Ändere mal die Zeile
If liIndex > .Sheets.Count Or .Sheets.Count = 1 Then Exit Sub
um in
If liIndex > .Sheets.Count Or .Sheets.Count = 1 Then Exit Do
Mit ...Exit Sub wird der Befehl Application.DisplayAlerts = True nicht durchgeführt.
Und somit werden dann keine Systemmeldungen wie z Bsp "Wollen Sie speichern", oder so mehr angezeigt.
Den "Fehler" hab ich gerad noch entdeckt.
Ciao
Thorsten
Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 11:06:51
Matthias
HI,
Die Zeile
.Sheets(liIndex).Delete
wird nicht berücksichtigt im VBE Modus...?
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 11:50:57
Matthias
Hi Thorsten,
hier noch eine Bemerkung:
Habe den Code mal mit anderen Namen versehen aus der Datei und er löscht komischer weise immer nur das erste Tabellenblatt in der Datei.
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 17:27:00
Oberschlumpf
Hi Matthias
Ich glaub, ich hatte einen Denkfehler.
Lösch mal diese Zeilen:
Case Else
lboFertig = True
Denn wenn das erste Blatt nicht eines der zu löschenden ist, dann wird mit Case Else das Makro auch verlassen, und nix weiter passiert.
Klappt es nun?
Ciao
Thorsten
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 17:37:00
Matthias
nein leider nicht aber ich bewundere deine Ausdauer ;-)
Anzeige
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 17:46:23
Oberschlumpf
hehe :-)
Kannst du bitte mal eine Testdatei erstellen, den Code einbauen, ein paar Tabellenblätter mit den Namen umbenennen, wie du sie auch in deiner Originaldatei benutzt und die Datei mal auf dem Forum-Server speichern?
Vielleicht seh ich ja an deiner Datei den Fehler
AW: Prüfen ob mehrere sheets vorhanden
11.04.2007 23:34:00
Matthias
Hallo Matthias
Habe nochmal etwas geändert, jetzt sollte es funktionieren.
Der 1.Fehler lag darin, das mit der Schleife vorwärts gezählt wurde.
Der 2.Fehler lag darin, das Sheets statt Worksheets angesprochen wurde
Der 3.Fehler lag darin, das ein Klammerpaar fehlte bei:
If Left((Worksheets(J).Name), 16) = "Stress-Deckblatt" Then
https://www.herber.de/bbs/user/41720.xls
Gruß Matthias
Anzeige
Funktioniert
12.04.2007 09:00:00
Matthias
Hi Matthias,
haut hin. Vielen Dank für Deine Mühe und Ausdauer :-)
Dir noch einen schönen Tag
Gruß
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige