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

VBA optimieren

VBA optimieren
03.01.2017 19:23:41
Fred
Guten Abend Excel,- und VBA Experten,
es geht um folgendes;
1.) Von Sheet „Liste1“ entferne ich alle Filterfunktionen in Sheet „Sp1“.
2.) Es werden alle Werte in „Sp1“ / Bereich I6:BH5000 entfernt.
3.) Es wird in „Liste1“ von A6 : AZ bis zur letzten Zeile mit Inhalt kopiert
4.) Es wird in „Sp1“ / Spalte „I“ ab der 6 Zeile eingefügt

Dim wks As Worksheet
Set wks = ActiveWorkbook.Worksheets("Sp1")
With wks
' prüft ob Filterfunktionen vorhanden sind, zeigt alle Daten
If .AutoFilterMode Then
If .FilterMode Then .ShowAllData
End If
End With
Worksheets("Sp1").Range("I6:BH5000").ClearContents
Dim loLetzte As Long
loLetzte = ThisWorkbook.Worksheets("Sp1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
If loLetzte = 1 Then
loLetzte = 2
Else
loLetzte = loLetzte + 1
End If
With ThisWorkbook.Worksheets("Liste1")
.Range(.Cells(6, 1), .Cells(.UsedRange.Rows.Count + 1, 52)).Copy
Sheets("Sp1").Cells(loLetzte, 9).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Meine Anfrage;
Ich habe weitere 24 Blatt (von „Sp1“ bis „Sp25“) bei denen ich selben Vorgang ausführen will. Der Ansatz ist, das ich 25 Codes entsprechend schreibe.
Kann man dies in einem VBA unterbringen, so das in den 25 Blatt die Filterfunktionen ausgeschaltet werden, und entsprechender Bereich in „Liste1“ in alle Tabellenblätter (mit Anfang „Sp“) kopiert wird?
Gruß
Fred

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA optimieren
03.01.2017 19:39:10
Rudi
Hallo,
1. Optimierung: Alle Variablen-Deklarationen an den Anfang des Codes und nicht zwischendrin.
2. per Schleife
For iIndex=1 to 25
Worksheets("Sp" &iIndex).Range("I6:BH5000").ClearContents
loLetzte = ThisWorkbook.Worksheets("Sp" &iIndex).Cells(Rows.Count, 1).End(xlUp).Row
'in diesem Sinne weiter
Next iIndex
Gruß
Rudi
AW: VBA optimieren
03.01.2017 22:42:01
Fred
Jo, Rudi
danke für den Hinweis und das passende Beispiel mit der Schleife,- hab es hinbekommen.
Gruß
Fred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige