Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Loop für einige Sheets

Forumthread: Loop für einige Sheets

Loop für einige Sheets
03.02.2021 12:35:29
JoS
Hallo,
ich möchte eine Loop für meine Worksheets machen, aber nur für die Sheets 2-8
Bisher habe ich eine Loop für alle WS die so aussieht:
    Dim WS As Worksheet
For Each WS In Worksheets
Dim Anz As Integer ' Anzahl der Reihen die Kopiert werden sollen
Anz = 10
WS.Activate
Dim WsName As String
WsName = ActiveSheet.Name
lEintrUebersicht = WS.Cells(Rows.Count, 2).End(xlUp).Row - 1
If lEintrUebersicht >= 10 Then
Anz = lEintrUebersicht - Anz
Else
Anz = 2
End If
WS.Range("A" & Anz & ":M" & lEintrUebersicht).Copy
With ThisWorkbook
.Sheets(WsName).Activate
.Sheets(WsName).Cells(1, Anz).PasteSpecial
End With
Next WS
was muss ich ändern, dass die loop nur für sheets 1-8 gilt?
Vielen Dank im vorraus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Loop für einige Sheets
03.02.2021 12:39:13
Regina
Hi,
versuch mal so:
    Dim WS As Worksheet
Dim lng_zaehler as Long
For lng_Zaehler = 1 to 8
Dim Anz As Integer ' Anzahl der Reihen die Kopiert werden sollen
Anz = 10
' Diese Zeile isz eigentlich über
ThisWorkbook.Worksheets(lng_Zaehler).Activate
Dim WsName As String
WsName = ActiveSheet.Name
lEintrUebersicht = ThisWorkbook.Worksheets(lng_Zaehler).Cells(Rows.Count, 2).End(xlUp). _
Row - 1
If lEintrUebersicht >= 10 Then
Anz = lEintrUebersicht - Anz
Else
Anz = 2
End If
ThisWorkbook.Worksheets(lng_Zaehler).Range("A" & Anz & ":M" & lEintrUebersicht).Copy
With ThisWorkbook
.Sheets(WsName).Activate
.Sheets(WsName).Cells(1, Anz).PasteSpecial
End With
Next
Gruß Regina
Anzeige
AW: Loop für einige Sheets
03.02.2021 12:46:34
Nepumuk
Hallo,
teste mal:
Public Sub Test()
    Dim lngIndex As Long, lEintrUebersicht As Long
    Dim Anz As Long ' Anzahl der Reihen die Kopiert werden sollen
    
    For lngIndex = 2 To 8
        
        Anz = 10
        
        With Worksheets(lngIndex)
            
            lEintrUebersicht = .Cells(.Rows.Count, 2).End(xlUp).Row - 1
            
            If lEintrUebersicht >= 10 Then
                Anz = lEintrUebersicht - Anz
            Else
                Anz = 2
            End If
            
            Call .Range(.Cells(Anz, 1), .Cells(lEintrUebersicht, 13)).Copy(Destination:=Cells(1, Anz))
            
        End With
        
    Next
End Sub

Gruß
Nepumuk
Anzeige
Vielen Dank!
03.02.2021 12:50:52
JoS
Vielen Dank euch beiden. Wenn ich das so sehe, sieht das ganz logisch und einfach aus.
Vielen Dank
AW: Vielen Dank!
03.02.2021 12:53:40
Nepumuk
Ooooooooooooops,
da fehlt ein Bezugspunkt. So natürlich:
Call .Range(.Cells(Anz, 1), .Cells(lEintrUebersicht, 13)).Copy(Destination:=.Cells(1, Anz))
Gruß
Nepumuk
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige