Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige