Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte Tabellenblätter kopieren

Forumthread: Bestimmte Tabellenblätter kopieren

Bestimmte Tabellenblätter kopieren
29.05.2007 07:52:40
Thomas
Hallo,
ich möchte bestimmte Tabellenblätter mit den Namen "SME*" und "SM*" in ein neues Workbook kopieren. Derzeit hab ich es etwas umständlich gelöst:
For Each objSh In ThisWorkbook.Sheets
If objSh.Name Like "SM" & "*" Then
ReDim Preserve strNamen(UBound(strNamen) + 1)
i = UBound(strNamen)
If i = 1 Then
objSh.Activate
SME = ActiveSheet.Name
End If
If i = 2 Then
objSh.Activate
SM0 = ActiveSheet.Name
End If
If i = 3 Then
objSh.Activate
SM1 = ActiveSheet.Name
End If
If i = 4 Then
objSh.Activate
SM2 = ActiveSheet.Name
End If
If i = 5 Then
objSh.Activate
SM3 = ActiveSheet.Name
End If
If i = 6 Then
objSh.Activate
SM4 = ActiveSheet.Name
End If
If i = 7 Then
objSh.Activate
SM5 = ActiveSheet.Name
End If
If i = 8 Then
objSh.Activate
SM6 = ActiveSheet.Name
End If
End If
Next
'
'werden die oder das Tabellenblatt mit dem Namen "SN*" in ein neues Workbook kopiert
'
If SM0 = "" Then
Sheets(SME).Select
Sheets(SME).Copy
GoTo nach_SMEs_kopieren
End If
If SM1 = "" Then
Sheets(Array(SME, SM0)).Select
Sheets(Array(SME, SM0)).Copy
GoTo nach_SMEs_kopieren
End If
If SM2 = "" Then
Sheets(Array(SME, SM0, SM1)).Select
Sheets(Array(SME, SM0, SM1)).Copy
GoTo nach_SMEs_kopieren
End If
If SM3 = "" Then
Sheets(Array(SME, SM0, SM1, SM2)).Select
Sheets(Array(SME, SM0, SM1, SM2)).Copy
GoTo nach_SMEs_kopieren
End If
If SM4 = "" Then
Sheets(Array(SME, SM0, SM1, SM2, SM3)).Select
Sheets(Array(SME, SM0, SM1, SM2, SM3)).Copy
GoTo nach_SMEs_kopieren
End If
If SM5 = "" Then
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4)).Select
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4)).Copy
GoTo nach_SMEs_kopieren
End If
If SM6 = "" Then
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4, SM5)).Select
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4, SM5)).Copy
GoTo nach_SMEs_kopieren
End If
If SM6 "" Then
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4, SM5, SM6)).Select
Sheets(Array(SME, SM0, SM1, SM2, SM3, SM4, SM5, SM6)).Copy
End If
Wie kann ich diesen Code etwas einfacher gestallten ?
Vielen Dank !
Thomas

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Tabellenblätter kopieren
29.05.2007 09:15:00
Thomas
bzw. hier hab ich schon was ausgearbeitet soeben - allerdings funktioniert das nicht beim 2. Durchgang beim Kopieren. Wieso das ?
For Each objSh In ThisWorkbook.Worksheets
If objSh.Name Like "SM" & "*" Then
ReDim Preserve strNamen(UBound(strNamen) + 1)
strNamen(UBound(strNamen)) = objSh.Name
End If
Next
For i = 1 To UBound(strNamen)
Worksheets(strNamen(i)).Copy
Next

Anzeige
AW: Bestimmte Tabellenblätter kopieren
29.05.2007 10:26:00
Thomas
bin wieder ein Stück weiter:
Set originale_mappe = ActiveWorkbook
For Each objSh In ThisWorkbook.Worksheets
If objSh.Name Like "SM" & "*" Then
ReDim Preserve strNamen(UBound(strNamen) + 1)
strNamen(UBound(strNamen)) = objSh.Name
End If
Next
For i = 1 To UBound(strNamen)
originale_mappe.Sheets(strNamen(i)).Copy
Next i
jetzt ist das Problem, dass er die einzelnen Sheets in ein jeweils neues Workbook kopiert - sollen aber alle in eines kopiert werden ... hmmm ?!

Anzeige
AW: Bestimmte Tabellenblätter kopieren
29.05.2007 11:02:05
Thomas
ok, habs denke ich doch selbst geschafft - wenn auch nicht ganz super schön
Set originale_mappe = ActiveWorkbook
For Each objSh In ThisWorkbook.Worksheets
If objSh.Name Like "SM" & "*" Then
ReDim Preserve strNamen(UBound(strNamen) + 1)
strNamen(UBound(strNamen)) = objSh.Name
End If
Next
With Application
.SheetsInNewWorkbook = 1
End With
Set NewBook = Workbooks.Add
For i = 1 To UBound(strNamen)
originale_mappe.Sheets(strNamen(i)).Copy After:=NewBook.Sheets(1)
Next i
With Application
.SheetsInNewWorkbook = 3
End With
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