Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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

Performantes Löschen/Kopieren von Bereichen

Performantes Löschen/Kopieren von Bereichen
15.10.2013 21:38:25
Bereichen
Hallo,
ich würde gerne per VBA folgendes performant in folgender Reihenfolge lösen:
1. In Registerblatt "Tabelle 1" den Bereich A2:D1000 in die "Tabelle 2" kopieren
nur Werte!)
2. Dann in "Tabelle 1" den Bereich A2:Z1000 löschen(nur Werte,Formatierungen
sollen erhalten bleiben)
3. Dann in den Tabellen 3, 4, 5 die Spalten A-Z, die Werte enthalten können, löschen
(nur Werte, Formatierungen sollen erhalten bleiben)
Bisher habe ich das mit dem Makrorekorder gelöst, aber das Löschen dauert ziemlich lange.
Vielen Dank im Voraus für Hilfe!
Bernd

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Performantes Löschen/Kopieren von Bereichen
15.10.2013 22:05:32
Bereichen
Hallo Bernd
versuchs mal damit
Sub Löschen_und_kopieren()
Dim ws As Worksheet
With Worksheets("Tabelle1")
.Range("A2:D1000").Copy Destination:=Worksheets("Tabelle2").Range("A2")
.Range("A2:Z1000").ClearContents
End With
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case Is = "Tabelle3"
ws.Range("A:Z").ClearContents
Case Is = "Tabelle4"
ws.Range("A:Z").ClearContents
Case Is = "Tabelle5"
ws.Range("A:Z").ClearContents
End Select
Next
End Sub
Gruess
Raphael

Und wenn du jetzt noch ,,,
15.10.2013 23:49:05
Uduuh
Hallo,
... die Bildschirmaktualisierung abschaltest und Select Case optimierst, ist alles perfekt. ;-)
Sub Löschen_und_kopieren()
Dim ws As Worksheet
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.Range("A2:D1000").Copy Worksheets("Tabelle2").Range("A2")
.Range("A2:Z1000").ClearContents
End With
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "Tabelle3", "Tabelle4", "Tabelle5"
ws.Range("A:Z").ClearContents
End Select
Next
End Sub

Gruß aus’m Pott
Udo

Anzeige
Danke, wieder was gelernt oT
16.10.2013 00:30:59
Raphael

AW: Und wenn du jetzt noch ,,,
16.10.2013 09:53:45
Kawensmann
Hallo,
ich weiß nicht, ob's wirklich schneller ist, aber kürzer auf jeden Fall:

For Each ws In ActiveWorkbook.Sheets(Array("Tabelle3", "Tabelle4", "Tabelle5"))
ws.Range("A:Z").ClearContents
Next
Gruß
Kawensmann

allen Dank für die Hilfe!
16.10.2013 13:41:21
Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige