ich habe zu u. a. Code eine Frage:
Der Code extrahiert aus einer Exceldatei mit 7 Tabellenblätten in einer neuen Dateiu 3 Tabellenblätter und ersetzt die Formeln mit werten , was soweit auch alles perfekt funktioniert.
Nun hätte ich gerne eine Verbesserung in der Art, dass ich
1.) bestimmte Namen der Tabellenblätter explizit vorgeben kann, die ich in der Form bearbeitet haben möchte
2.) statt ganzer Tabellenblätter nur jeweils Spalte 2-9 und bis Zeile 3000 bearbeitet. Die neue Datei mit den "Werten sollte möglichst klein, deshalb dieser Wunsch!
Kann mir jemand helfen?
Gruß
Bernd
PS:
Der Code:
Sub Wertedatei()
Dim wbQ As Workbook, wbZ As Workbook
Dim i As Integer
Dim fn As String
Set wbQ = ActiveWorkbook
Application.ScreenUpdating = False
'erstes Blatt kopieren
wbQ.Sheets(1).Copy
Set wbZ = ActiveWorkbook
'weitere Blätter kopieren
For i = 2 To wbQ.Sheets.Count - 4
wbQ.Sheets(i).Copy After:=wbZ.Sheets(wbZ.Sheets.Count)
Next i
'Formeln in Werte wandeln
For i = 2 To wbQ.Sheets.Count - 4
With wbZ.Sheets(i)
.Cells.Copy
.Cells.PasteSpecial xlValues
End With
Next i
Application.CutCopyMode = False
'Dateinamen der neuen Wertedatei ermitteln
fn = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 4) & "_Werte.xls"
'Wertedatei speichern
wbZ.SaveAs Filename:=fn
wbZ.Close 'evtl. schließen?
'Ursprungsdatei schließen
wbQ.Close SaveChanges:=True
Application.ScreenUpdating = False
End Sub