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)
  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)
  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 SubDanke im Voraus,

Niko

 
 
 VBA, xlsm Arbeitsblatt von Arbeitsmappe als xlsx datei in bestimmten ordner speichern
 VBA, xlsm Arbeitsblatt von Arbeitsmappe als xlsx datei in bestimmten ordner speichern
				
 

![[-]](https://www.clever-excel-forum.de/images/collapse.png)
