Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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
Inhaltsverzeichnis

Makro: Löschen bestimmter Sheets - Fehlermeldung?

Makro: Löschen bestimmter Sheets - Fehlermeldung?
21.10.2014 10:56:51
Monika
Hallo zusammen,
ich möchte ein neues Workbook anlegen, in welches per Makro verschiedene Dateien kopiert werden sollen. Dies läuft auch schon, nur habe ich ein kleines Problem entdeckt:
Wenn jedes Mal neu reinkopiert wird (was so sein soll, weil es sich immer um die aktuellen Daten handeln muss), dann habe ich irgendwann unheimlich oft redundante Sheets.
Deshalb möchte ich vor dem Einfügen prüfen, ob schon ein Sheet mit dem gleichen Namen vorhanden ist und falls ja, soll dieses gelöscht werden...
Ich habe angefangen etwas zu schreiben, kenne mich allerdings mit Schleifen, etc. leider nicht so gut aus, deshalb würde ich euch gerne um Unterstützung bitten :)
Momentan sieht das ganze so aus:
Sub BlaetterLoeschen()
Dim WS_Count As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
Dim WS As Worksheet
Application.DisplayAlerts = False
If WS.Name = "HP OrderStatus" Then
ActiveWorkbook.WS("HP OrderStatus").Delete
Application.DisplayAlerts = True
End If
Next I
End Sub
Hier bekomme ich allerdings den Fehler "Run-time error '91'_Object variable or With block variable not set". Ich habe mir die Hilfe angeschaut, bin aber eigentlich der Meinung, dass ich da schon ein Objekt habe? Bin etwas aufgeschmissen... :D
Wäre super, wenn ihr mir helfen könntet :)
Vielen Dank schon mal und liebe Grüße
Monika

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Löschen bestimmter Sheets - Fehlermeld?
21.10.2014 11:10:39
Daniel
Hi
da wirfst du einiges durcheinander.
wenn du ein bestimmtes Tabellenblatt löschen willst, dann kannst du entweder:
eine Zählscheife über die Indexnummer der Tabellenblätter verwenden:
dim i as long
for i = 1 to ActiveWorkbook.Worksheet.Count
if ActiveWorkbook.Worksheets(i).Name = "HP OrderStatus" then
ActiveWorkbook.Worksheets(i).Delete
exit for
end if
next
oder du nimmst eine For-Each-In-Schleife über die Worksheet-Objekte:
dim WS as Worksheet
for Each WS in ActiveWorkbook.Worksheets
if WS.Name = "HP OrderStatus" Then
WS.Delete
Exit For
end If
Next
die dritte Variante wäre, dass du das Blatt einfach löscht und die Fehlermeldung die dann entsteht, einfach ignorierst.
In diesem Fall kann man das machen, denn der Fehler entsteht ja dann wenn das Blatt nicht vorhanden ist, und dann kann man ohne Probleme mit dem nächsten Programmschritt weiter machen, weil das ja genau das ist was man erreichen will:
On Error Resume Next
ActiveWorkbook.Worksheets("HP OrderStatus").Delete
On Error Goto 0
Gruß Daniel
ps. das Application.DisplayAlerts = False/True kannst du ja selber ergänzen

Anzeige
AW: Makro: Löschen bestimmter Sheets - Fehlermeldung?
21.10.2014 11:10:41
Peter
Hallo

Sub BlaetterLoeschen()
Dim WS_Count As Integer
Dim WS As Worksheet
WS_Count = ActiveWorkbook.Worksheets.Count
For i = 1 To WS_Count
Set WS = ActiveWorkbook.Worksheets(i)
Application.DisplayAlerts = False
If WS.Name = "HP OrderStatus" Then
WS.Delete
End If
Application.DisplayAlerts = True
Set WS = Nothing
Next i
End Sub

AW: Makro: Löschen bestimmter Sheets - Fehlermeldung?
21.10.2014 11:23:34
Monika
Danke für die schnelle Rückmeldung! :) Funktioniert!

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige