nach dem ich workbook.sheets kopiert habe, hat wunderbar funktioniert mit
KopiereSheets(). Die Sheets im neuen Workbook haben sowohl Formeln, als auch verbunden Felder, diese wollte ich mit CopyWert()kopieren. Aber ich bekomme immer Laufzeitfehler 1004 bei PasteSpecial_Paste:=xlPasteValues obwohl ich mit WBaktivieren()bei den Sheets die korrekten aktiv habe.
Ich poste die 3 'Sub's
liebe Gruess
Richi
Sub KopiereSheets()
Dim awb As String 'Variable für aktives WB
awb = ActiveWorkbook.Name 'Name des aktuellen Files in Variable awb
Dim i As Integer 'sheet Nummer
i = 2 'Startwert setzen
Workbooks.Add 'neues EXCEL Objekt öffnen
For i = 2 To 6 'gilt für sheet 2-6
ThisWorkbook.Sheets(i).Copy before:=ActiveWorkbook.Sheets(i - 1)
Next i
For i = ActiveWorkbook.Sheets.Count To 1 Step -1
If WorksheetFunction.CountA(Worksheets(i).Cells) = 0 Then
Application.DisplayAlerts = False
Worksheets(i).Delete
Application.DisplayAlerts = True
Else
Workbooks(awb).Activate
CopyWert
End If
Next i
End Sub
Sub CopyWert()
i = 2 'Startwert setzen
For i = 2 To 6 'gilt für sheet 2-6
Sheets(i).Select
Dim SN As String 'Sheet Name
SN = ActiveSheet.Name
Cells.Select
Selection.Copy
WBaktivieren 'neues Excelfile aktiv setzen'
Sheets(SN).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next i
'workbooks(awb).Close SaveChanges:=True
End Sub
Sub WBaktivieren()
Dim wb As Workbook, x As String
For Each wb In Workbooks
If wb.Name ThisWorkbook.Name Then x = wb.Name
Next wb
MsgBox "Es hat ein File mit dem Namen " & x & ". X um das Fenster zu schliessen " & vbCrLf & _
"Click OK um diese File aktiv zu setzen "
Workbooks(x).Activate
End Sub