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

Abfragen, ob Worksheet noch besteht

Abfragen, ob Worksheet noch besteht
09.08.2006 09:07:11
Peter
Hallo
Mit nachfolgendem Code lösche ich alle Tabellen, bei denen in Zelle A1 "löschen" steht.
Am Ende wähle, die anfangs aktive Tabelle wieder an.
Mein Problem: Es kann der Fall sein, dass auch die anfangs aktive Tabelle gelöscht wird; dann ist es natürlich nicht möglich, diese wieder anzuwählen.
Als "Ersatz" möchte ich in diesem Fall die erste Tabelle des Worksheets anwählen.
Wie kann ich dies in meinen Code integrieren?
Danke für Feedback, Peter

Sub WS_löschen()
' Druckbereich in allen Worksheets des aktiven Workbooks
' markieren
Dim objWorksheet As Worksheet, objSheet As Worksheet
Set objSheet = ActiveSheet
Application.ScreenUpdating = False
For Each objWorksheet In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False  'damit das Löschen der Tabellen
'nicht  bestätigt werden muss
With objWorksheet
If .Range("A1") = "löschen" Then
.Delete
End If
End With
Next
Application.DisplayAlerts = True
objSheet.Activate
Application.ScreenUpdating = True
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 09:18:00
u_
Hallo,
kurz und brutal:

Sub WS_löschen()
' Druckbereich in allen Worksheets des aktiven Workbooks
' markieren
Dim objWorksheet As Worksheet, objSheet As Worksheet
Set objSheet = ActiveSheet
Application.ScreenUpdating = False
For Each objWorksheet In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False  'damit das Löschen der Tabellen
'nicht  bestätigt werden muss
With objWorksheet
If .Range("A1") = "löschen" Then
.Delete
End If
End With
Next
Application.DisplayAlerts = True
On Error GoTo ERRHDL
objSheet.Activate
Application.ScreenUpdating = True
Exit Sub
ERRHDL:
Sheets(1).Activate
Application.ScreenUpdating = True
End Sub

Gruß
Lesen gefährdet die Dummheit
Anzeige
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 09:21:19
Peter
Hallo u_
Super, das funktioniert.
Danke, Peter
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 09:18:46
Hans
Hallo Peter,
wie folgt:

Sub WS_löschen()
Dim objWorksheet As Worksheet, objSheet As Worksheet
Set objSheet = ActiveSheet
Application.ScreenUpdating = False
For Each objWorksheet In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False
With objWorksheet
If .Range("A1") = "löschen" Then
If .Name = objSheet.Name Then Worksheets(1).Select
.Delete
End If
End With
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

gruss hans
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 10:32:02
Peter
Hallo Hans
Vielleicht habe ich mich nicht völlig klar ausgedruckt. Ich will die erste Tabelle im gegebenen Fall nicht löschen, sondern nur anwählen.
In der Zwischenzeit habe ich die diesbezüglichen Lösungen erhalten.
Danke und freundlicher Gruss
Peter
Anzeige
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 09:21:40
Lukas
Hallo Peter
Probiere es so:
Option Explicit

Sub WS_löschen()
' Druckbereich in allen Worksheets des aktiven Workbooks
' markieren
Dim objWorksheet As Worksheet, objSheet As Worksheet, BlattGelöscht As Boolean, Name
Set objSheet = ActiveSheet
Name = ActiveSheet.Name
Application.ScreenUpdating = False
For Each objWorksheet In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False  'damit das Löschen der Tabellen
'nicht  bestätigt werden muss
With objWorksheet
If .Range("A1") = "löschen" Then
If .Name = Name Then BlattGelöscht = True
.Delete
End If
End With
Next
If BlattGelöscht = True Then
Sheets(1).Select
Else: Sheets(Name).Select
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Gruss
lukas
Bitte um Rückmeldung
Anzeige
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 10:37:38
Peter
Hallo Lukas
Das funktioniert so (auch). Was mir nicht klar ist:
Auf der ersten Zeile (dim), steht Name ohne Typ. Müsste hier nicht auch noch stehen: name as ... ?
Danke für Rückmeldung
Peter
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 10:49:30
Peter
Hallo Lukas
Das funktioniert so (auch). Was mir nicht klar ist:
Auf der ersten Zeile (dim), steht Name ohne Typ. Müsste hier nicht auch noch stehen: name as ... ?
Danke für Rückmeldung
Peter
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 11:31:26
u_
Hallo,
ohne angegebenen Typ ist es Variant.
Gruß
Lesen gefährdet die Dummheit
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 15:21:53
Peter
Hallo u_
Danke für die Mitteilung.
Wäre es im konkreten Fall nicht sinnvoll, die Variable als String zu definieren?
Danke für Feedback.
Peter
Anzeige
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 20:16:04
u_
Hallo,
ja. dürfte aber vom Speicherbedarf her egal sein.
Generell sollte man Variablen aber mit einem Typkennzeichen versehen wie strName as String, intWert as Integer, dblBetrag as Double etc.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet)
AW: Abfragen, ob Worksheet noch besteht
09.08.2006 20:22:26
Peter
Hallo u_
Danke für die Rückmeldung und den Hinweis bezüglich Typkennzeichen. Das muss ich noch umsetzen, resp. verinnerlichen.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige