Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

Schleife für Zellenbereich

Schleife für Zellenbereich
31.03.2020 18:32:46
raph.bier
Hallo,
habe mir kürzlich ein kleines VBA-Skript mit Hilfe des Internets zusammengebastelt.
Dieses Skript dient dazu, aus einem Datenblatt gewisse Zeilen zu filtern, die dann in meinem Register "Übersicht" angezeigt werden..
Nun möchte ich eine Schleife erstellen die mir in meinem Register Übersicht die Zeilen aus allen Datenblätter anzeigt. Also hier mein VBA-Script:

Sub kopieren()
Dim variable As String
variable = [A2]
With Sheets(variable).UsedRange
.AutoFilter Field:=19, Criteria1:="ja"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("?bersicht").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets(variable).UsedRange.AutoFilter
End Sub


Nun will ich anstatt meiner Variable a2 die auf ein Datenblatt verweist gleich alle Datenblätter durchlaufen und ausgeben lassen. In meinem Fall die Datenblätter im Zellbereich A2:A4
Habe an den Befehl gedacht:
For Each variable In Worksheets(Übersicht).Range("A2:A4")
Next

Aber ich komme mit der Verschachtelung nicht klar. Wie muss ich dann meine Variablen definieren?
Kann mir da bitte wer Helfen?
https://www.herber.de/bbs/user/136304.xlsm
Danke im Voraus.
LG

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

Betreff
Datum
Anwender
Anzeige
AW: Schleife für Zellenbereich
31.03.2020 19:46:19
Luschi
Hallo raph.bier,
bei mir klappt das so:

Sub kopieren()
Dim rgVariable As Range, Variable As String, iZeile As Long
iZeile = Sheets("?bersicht").Cells(Rows.Count, "A").End(xlUp).Offset(2, 0).Row
For Each rgVariable In Worksheets("?bersicht").Range("A2:A4")
Variable = rgVariable.Value
With Sheets(Variable).UsedRange
'sonst muß man mit Fingerzählen überprüfen, welche SpaltenNr. die Spalte 'S' hat
.AutoFilter Field:=ActiveSheet.Columns("S").Column, Criteria1:="ja"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
Sheets("Übersicht").Cells(iZeile, "A").Offset(2, 0).PasteSpecial xlPasteValues
'nächse ZeilenNr. zum Einfügen ermitteln
iZeile = iZeile + Selection.Rows.Count
'Autofilter aufheben
.AutoFilter Field:=Columns("S").Column
End With
'Kopiermodus aufheben!
Application.CutCopyMode = False
'Sheets(Variable).UsedRange.AutoFilter
Next rgVariable
Sheets("?bersicht").Range("A9").Select
Set rgVariable = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Schleife für Zellenbereich
31.03.2020 20:05:18
raph.bier
Hallo, du hast dir einen Orden verdient!!!
Bin dir sowas von dankbar.
Wäre selbst niemals auf dieses Skript gekommen.
Liebe Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige