Microsoft Excel

Herbers Excel/VBA-Archiv

Blätter zusammenführen, erste Zeile überspringen

Betrifft: Blätter zusammenführen, erste Zeile überspringen von: Gero
Geschrieben am: 29.07.2014 14:43:32

Liebe Excel-Profis,
ich habe hier im Forum bereits eine Antwort darauf gefunden, wie man die Inhalte mehrerer Arbeitsblätter automatisch in ein einziges Blatt kopieren kann (ich habe den Code schon leicht modifiziert):

Sub Zusammenführen()

Dim wksT As Worksheet
Dim wksS As Worksheet
Dim i As Integer
Dim RowsT As Integer

    Application.ScreenUpdating = False

    Set wksT = ActiveWorkbook.Sheets.Add(, Worksheets(Worksheets.Count), , xlWorksheet)
    wksT.Name = "Zusammenführen"
    
    For i = 1 To Worksheets.Count - 1 - 7
        Set wksS = Worksheets(i)
        RowsT = wksT.Cells(Rows.Count, 1).End(xlUp).Row
        wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT, 1)
    Next i

End Sub
Nun möchte ich zwei Dinge ändern.
1. Aus meinen Arbeitsblättern soll die erste Zeile (enthält Überschriften) n i c h t mitkopiert werden. Dafür muss sicherlich irgendwo eine "-1" eingefügt werden... nur wo?
2. Die For-Schleife läuft zurzeit für die ersten "(Anzahl Blätter minus 8)" durch. Gibt es eine Möglichkeit, die Position eines bestimmten Arbeitsblatt über seinen Namen herauszufinden? Ich möchte nämlich nur die Inhalte von den Arbeitsblättern links von einem bestimmten Blatt untereinanderkopieren.

Danke im Voraus für eure Hilfe.

  

Betrifft: AW: Blätter zusammenführen, erste Zeile überspringen von: Rudi Maintaire
Geschrieben am: 29.07.2014 15:05:32

Hallo,

    For i = 1 To Worksheets("DasBlatt").Index - 1
        Set wksS = Worksheets(i)
        RowsT = wksT.Cells(Rows.Count, 1).End(xlUp).Row
        wksS.UsedRange.OffSet(1).Copy Destination:=wksT.Cells(RowsT, 1)
    Next i



  

Betrifft: AW: Blätter zusammenführen, erste Zeile überspringen von: Gero
Geschrieben am: 31.07.2014 15:13:56

Danke! Mit eurer Hilfe habe ich's hinbekommen.


  

Betrifft: AW: Blätter zusammenführen, erste Zeile überspringen von: Oberschlumpf
Geschrieben am: 29.07.2014 15:06:42

Hi Gero

zu 1. (ungetestet, weil keine Bsp-Datei)

füge als letzte Zeile vor der Next i Zeile die fettgedruckte Zeile ein:

        wksT.Rows(1).Delete
    Next i
zu 2. (ungetestet, weil...)
ändere die For/Next-Schleife + füge diese IF-Bedingung ein (fettgedruckt):
    For i = 1 To Worksheets.Count
     If Worksheets(i).Name = "DeineGesuchteTabelle1" Or _
           Worksheets(i).Name = "DeineGesuchteTabelle2" Or _
           Worksheets(i).Name = "DeineGesuchteTabelle3" Then
               Set wksS = Worksheets(i)
               RowsT = wksT.Cells(Rows.Count, 1).End(xlUp).Row
               wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT, 1)
               wksT.Rows(1).Delete
        End If
    Next i


Für "DeineGesuchteTabelle1-3" und weitere musst du natürlich genau die Tabellennamen eintragen, um die es dir geht.

Hilfts?

Ciao
Thorsten


 

Beiträge aus den Excel-Beispielen zum Thema "Blätter zusammenführen, erste Zeile überspringen"