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

Tabellenblätter löschen VBA

Tabellenblätter löschen VBA
03.12.2007 20:03:00
Wolfgang
Hallo,
die ausgeblendeten Tabellenblätter "Kunde1", "Kunde2" und "Kunde3" sollen via Schaltfläche ohne Rückfrage auf einmal gelöscht werden. Im Anschluß sollen neue ausgeblendete Tabellenblätter "Kunde4,5 und 6" eingefügt werden. Die Blätter sollen vor dem Tabellenblatt "Start" eingefügt werden. Ist so etwas machbar? - Mit dem Makrorekorder bekomme ich das irgendwie nicht hin. Wäre daher für Hilfestellungen sehr dankbar.
Gruß - Wolfgang

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter löschen VBA
03.12.2007 20:13:00
Josef
Hallo Wolfgang,
meinst du so?
Sub Loeschen()
Dim intN As Integer, intI As Integer
Dim objSh As Worksheet

On Error GoTo ErrExit
Application.DisplayAlerts = False
Application.ScreenUpdating = False

For Each objSh In ThisWorkbook.Worksheets
    If Left(objSh.Name, 5) = "Kunde" Then
        intN = Application.Max(intN, Cint(Replace(objSh.Name, "Kunde", "")))
        objSh.Delete
    End If
Next

For intI = intN + 1 To intN + 3
    Set objSh = ThisWorkbook.Worksheets.Add(Before:=Sheets("Start"))
    objSh.Name = "Kunde" & CStr(intI)
    objSh.Visible = xlSheetHidden
Next

ErrExit:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set objSh = Nothing
End Sub

Gruß Sepp

Anzeige
Kleine Umstellung bzw. Zusatzfrage
03.12.2007 20:28:00
Wolfgang
Hallo Josef,
sorry, ich habe da etwas übersehen. Die Reihenfolge ist "Kunde", "Kunde1" und "Kunde2", was müßte verändert werden, damit der Code dann auch noch läuft? Mit der ursprünglichen Reihenfolge läuft er prima. Vielleicht auch noch eine ergänzende Frage, wie der Code aussehen könnte, wenn genau die Reihenfolge "Kunde", Kunde1 und Kunde2 wieder eingefügt werden sollte. Danke schon jetzt wieder für die Rückmeldung.
Gruß - Wolfgang

AW: Kleine Umstellung bzw. Zusatzfrage
03.12.2007 20:38:00
Josef
Hallo Wolfgang,
dann so.
Sub Loeschen()
Dim intN As Integer, intI As Integer
Dim objSh As Worksheet
Dim bFortlaufend As Boolean

On Error GoTo ErrExit
Application.DisplayAlerts = False
Application.ScreenUpdating = False

bFortlaufend = True 'Nummern werden weitergezählt
'bFortlaufend = False 'Nummerierung beginnt bei 0 ("")

For Each objSh In ThisWorkbook.Worksheets
    If Left(objSh.Name, 5) = "Kunde" Then
        If bFortlaufend Then _
            intN = Application.Max(intN, Cint(Replace(objSh.Name, "Kunde", "0")) + 1)
        objSh.Delete
    End If
Next

For intI = intN To intN + 2
    Set objSh = ThisWorkbook.Worksheets.Add(Before:=Sheets("Start"))
    objSh.Name = "Kunde" & IIf(intI > 0, CStr(intI), "")
    objSh.Visible = xlSheetHidden
Next

ErrExit:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set objSh = Nothing
End Sub

Gruß Sepp

Anzeige
Danke - klappt super!
03.12.2007 20:47:00
Wolfgang
Hallo Josef,
super, das klappt so, wie ich es mir vorgestellt hatte. Herzlichen Dank dafür, Danke auch für die Erläuterungen, da kann ich mehr vom Code verstehen.
Einen schönen Abend noch und weiterhin alles Gute.
Herzliche Grüße
Wolfgang

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige