03.03.2023, 14:24
Hallo an alle,
möchte von einer .xlsm Datei nur ein Blatt in eine neue Datei als .xlsx speichern.
Habe im Internet ein VBA Code gefunden der ungefähr das machen sollte, doch es klappt nicht.
Es kommt Fehlermeldung “Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben.“
Gleichzeitig wäre es besser wenn der Speicherpfad und Name direkt im Code hinterlegt ist.
Speicherpfad ist eine NAS.
Anbei die Datei und der VBA Code.
Datei:
Speichern_in_NAS.xlsm (Größe: 22,02 KB / Downloads: 0)
Danke im Voraus,
Niko
möchte von einer .xlsm Datei nur ein Blatt in eine neue Datei als .xlsx speichern.
Habe im Internet ein VBA Code gefunden der ungefähr das machen sollte, doch es klappt nicht.
Es kommt Fehlermeldung “Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben.“
Gleichzeitig wäre es besser wenn der Speicherpfad und Name direkt im Code hinterlegt ist.
Speicherpfad ist eine NAS.
Anbei die Datei und der VBA Code.
Datei:
Speichern_in_NAS.xlsm (Größe: 22,02 KB / Downloads: 0)
Code:
Sub TeilbereichSpeichern()
Dim objWB As Workbook
Dim strRange As String, strFile As String
On Error GoTo ErrExit
GMS
strRange = "A1:F20" 'Bereichsadresse die Kopiert werden soll
strFile = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")
If strFile <> "Falsch" Then
Set objWB = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Sheets("Werte").Range(strRange).Copy
With objWB.Sheets(1).Range("A1")
.PasteSpecial xlPasteAll
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteColumnWidths
End With
Application.CutCopyMode = False
objWB.SaveAs strFile
objWB.Close
End If
ErrExit:
GMS True
If Err <> 0 Then MsgBox Err.Description
Set objWB = Nothing
End Sub
Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long
With Application
.ScreenUpdating = Modus
.EnableEvents = Modus
.DisplayAlerts = Modus
.EnableCancelKey = IIf(Modus, 1, 0)
If Modus Then
.Calculation = lngCalc
Else
lngCalc = .Calculation
.Calculation = xlCalculationManual
End If
.Cursor = IIf(Modus, -4143, 2)
.CutCopyMode = False
End With
End Sub
Danke im Voraus,
Niko