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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige