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

Sheets löschen händisch schneller als per Makro???

Sheets löschen händisch schneller als per Makro???
22.07.2003 17:58:55
Benjamin
Hallo zusammen,
mit folgendem Code lösche ich zwischen 5 und 15 Sheets einer Arbeitsmappe.
Leider dauert es bis zu 30 Sekunden. Kann mir jemand sagen woran soetwas liegen könnte?
Bin für jeden Tipp dankbar.
Danke im Vorraus.
Gruß Benjamin

Sub sheets_löschen()
Dim Arbeitsblatt As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name = "Tabelle1" Then
Arbeitsblatt.Visible = xlSheetVisible
Else: Arbeitsblatt.Delete
End If
Next Arbeitsblatt
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 18:31:38
ChrisL
Hi Benjamin
Ich könnte mir vorstellen, dass du viele Verweise und Formeln hast und dadurch bei jedem Löschen alles neu berechnet wird. Da könnte...
Application.Calculation = xlManual
' Dein Code
Application.Calculation = xlAutomatic
... Abhilfe schaffen.
Oder du könntest alle Bläter in ein Array einlesen und dann alle auf einmal löschen.
Option Explicit

Sub Blätter_löschen()
Dim Arbeitsblatt As Worksheet, iCounter As Byte
ReDim Arr(Worksheets.Count - 2)
On Error GoTo errorhandler
Application.Calculation = xlManual
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Worksheets("Tabelle1").Visible = xlSheetVisible
iCounter = 0
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name <> "Tabelle1" Then
Arr(iCounter) = Arbeitsblatt.Name
iCounter = iCounter + 1
End If
Next Arbeitsblatt
Worksheets(Arr).Delete
errorhandler:
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Gruss
Chris

Anzeige
AW: Sheets löschen händisch schneller als per Makro???
23.07.2003 18:00:41
Benjamin
Hallo Chris, vielen Dank zuerst,
habe nun folgendes daraus gemacht:

Sub sheets_löschen()
Dim Arbeitsblatt As Worksheet
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name = "Tabelle1" Then
Arbeitsblatt.Visible = xlSheetVisible
Else: Arbeitsblatt.Delete
End If
Next Arbeitsblatt
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub

Wenn ich den Code aus VBA heraus starte, läuft alles glatt.
Wenn ich meine Schaltfläche betätige gibt es folgende Fehlermeldung die ich mir nicht erklären kann:
"Laufzeitfehler 1004, Die Methode Calculation für das Objekt '_Application' ist fehlgeschlagen"
Hast Du irgend eine Idee?
LG Benjamin

Anzeige
AW: Sheets löschen händisch schneller als per Makro???
24.07.2003 10:45:11
ChrisL
Hi Benjamin
Setze die Eigenschaft der Schaltfläche TakeFocusOnClick auf False.
Ferner solltest du eine On Error Routine einbauen, damit die Einstellungen im Falle eines Fehlers wieder zurück gesetzt werden!
Gruss
Chris

AW: Sheets löschen händisch schneller als per Makro???
24.07.2003 10:52:09
Benjamin
Suuuuper.
Vielen Dank für Deine Geduld mit mir.
LG benjamin

AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 21:53:49
Benjamin
Hallo,
Tabelle1 ist ein Auswertungssheet für alle anderen Sheets.
Insofern sind sehr viele Verknüpfungen drin.
Ich werde es morgen im Büro mal mit ".calculation = xlmanual" versuchen.
Danke für den Tipp!
LG Benjamin

AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 18:20:09
Nepumuk
Hallo Benjamin,
ich weiß ja nicht, was du für einen Rechner hast, aber bei mir dauert das für 50 Tabellenblätter gerade mal 0,078 Sekunden.
Gruß
Nepumuk

Anzeige
AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 18:28:18
Benjamin
Hallo Nepumuk
DAS ist ja gerade das was mich beschäftigt!!!
(Pentium 4) Um es genau zu sagen.
LG Benjamin

AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 18:29:58
Nepumuk
Hallo Benjamin,
sind noch irgend welche Ereignisroutinen im Klassenmodul der Arbeitsmappe?
Gruß
Nepumuk

AW: Sheets löschen händisch schneller als per Makro???
22.07.2003 21:50:42
Benjamin
Hallo,
nein, keine.
LG Benjamin

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige