Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

nur ein Blatt abspeichern-jedoch in xlsx und pdf

nur ein Blatt abspeichern-jedoch in xlsx und pdf
15.11.2016 23:20:55
Jens
Hallo,
was müsste ich an meinem Code ändern damit nur die Tabelle1 abgespeichert wird?
Ist es auch möglich, das z.B. in Excel .xlsx (wie wenn ausgewählt wurde) und immer zusätzlich parallel dazu (im selben Ordner) die gleiche Tabelle1 ( also nicht die gesamte Mappe)als PDF abgespeichert wird.
Eine Nachfrage sollte nur kommen- wenn die Datei bereits besteht.-also Überschreiben-- Abbrechen-
Ist dies möglich?
Mein Code der schon mal die Mappe speichert.
  • 
    Private Sub CommandButton44_Click() 'Speichern_unter_neuem_Namen
    'Excel Arbeitsmappe Speichern
    Dim Neuer_DateiName As Variant, DateiTypen As String
    DateiTypen = "Excel Files mit Makro,*.xlsm, Excel Files ohne Makro,*.xlsx," & _
    "Excel Files 2003,*.xls,PDF-Datei,*.pdf"
    Neuer_DateiName = Application.GetSaveAsFilename(InitialFileName:="D:\PRIVATHAUS\", _
    FileFilter:=DateiTypen)
    If Neuer_DateiName = False Then Exit Sub
    ActiveWorkbook.SaveAs Filename:=Neuer_DateiName
    End Sub
    

  • Grüße Jens

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Das kannst Du...
    16.11.2016 07:44:21
    Case
    Hallo Jens, :-)
    ... prinzipiell so lösen: ;-)
    Option Explicit
    Public Sub Main()
    Dim varPath As Variant
    On Error GoTo Fin
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:=ThisWorkbook.Path & "\" & ActiveSheet.Name, _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    If Not varPath = False Then
    If Dir(varPath)  "" Then
    Select Case MsgBox("Datei überschreiben?", 4 Or 32 Or 0, "Datei")
    Case vbYes
    With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    End With
    Tabelle1.Copy
    With ActiveWorkbook
    .SaveAs varPath, 51
    .ExportAsFixedFormat 0, varPath
    .Close False
    End With
    End Select
    End If
    Else
    MsgBox "Abgebrochen..."
    End If
    Fin:
    With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    End With
    If Err.Number  0 Then MsgBox "Fehler: " & _
    Err.Number & " " & Err.Description
    End Sub
    
    Servus
    Case

    Anzeige
    AW: Das kannst Du...
    16.11.2016 09:56:08
    Jens
    Hallo Case,
    Danke für den Code- leider wird in dem angegebenen Ordner gar nichts erstellt- bzw. gespeichert.
    Es soll aus der geöffneten Arbeitsmappe (mit Makros) XLSM- nur ein Tabellenblatt 1:1 ---Name= "Tabelle1" Kopiert- und als Excel XLSX in dem dann auswählbaren Ordner gespeichert werden.
    Gleichzeitig soll dann die soeben erstellte Mappe in dem selben Ordner (dort wo sie als XLSX liegt) nochmals als PDF gespeichert werden.
    Na vielleicht gibt es ja eine Lösung.
    Gruß Jens
    Da hatte sich...
    16.11.2016 10:27:17
    Case
    Hallo Jens, :-)
    ... ein Fehler meinerseits eingeschlichen - probiere es mal so: ;-)
    Option Explicit
    Public Sub Main()
    Dim varPath As Variant
    On Error GoTo Fin
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:=ThisWorkbook.Path & "\" & ActiveSheet.Name, _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    If Not varPath = False Then
    If Dir(varPath)  "" Then
    Select Case MsgBox("Datei überschreiben?", 4 Or 32 Or 0, "Datei")
    Case vbYes
    With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    End With
    Tabelle1.Copy
    With ActiveWorkbook
    .SaveAs varPath, 51
    .ExportAsFixedFormat 0, varPath
    .Close False
    End With
    End Select
    Else
    Tabelle1.Copy
    With ActiveWorkbook
    .SaveAs varPath, 51
    .ExportAsFixedFormat 0, varPath
    .Close False
    End With
    End If
    Else
    MsgBox "Abgebrochen..."
    End If
    Fin:
    With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    End With
    If Err.Number  0 Then MsgBox "Fehler: " & _
    Err.Number & " " & Err.Description
    End Sub
    
    Servus
    Case

    Anzeige
    AW: Da hatte sich...
    16.11.2016 11:22:53
    Jens
    Hallo Case,
    geht wunderbar- hoffentlich nerve ich nicht so sehr.
    Beim PDF Speichern wird nur eine Seite gespeichert- es sind aber mehrere A4 Seiten hintereinander. Oder muss ich da noch etwas am Druckbereich ändern? Excelseitig wird richtig gespeichert.
    habe das geändert: Tabelle1.Copy in
    Sheets("Tabelle1").Copy
    nun wird die die richtige Tabelle1 genommen.
    werde mal versuchen das ein vergebener Pfad für's Speichern gleich angesprochen wird.
    ich versuche es mal- D:/Privathaus
    Danke erst mal
    LG Jens
    Dann solltest Du dir mal...
    16.11.2016 11:37:20
    Case
    Hallo Jens, :-)
    ... die Parameter zu "ExportAsFixedFormat" anschauen: ;-)
    Workbook.ExportAsFixedFormat-Methode (Excel)...
    "IgnorePrintAreas" oder "From" und "To". Spiele da mal etwas mit rum. Ansonsten ist immer eine Beispieldatei (gegebenenfalls mit anonymisierten Daten) recht praktisch. ;-)
    Servus
    Case

    Anzeige
    AW: Dann solltest Du dir mal...
    16.11.2016 20:28:59
    Jens
    Danke Case- hab es gleich mal umgesetzt. läuft.
    Wenn man noch einen vordefinierten Speicherort, wie D:/Haus/ und einen frei zu wählenden Dateinamen verwenden möchte- wo die "Tabelle1" mit neuem Namen in Excel und PDF gleichzeitig abgespeichert werden soll- würde das auch noch gehen.
    Hier der geänderte Code, so-das alle Blätter der Tabelle1 als PDF gespeichert werden.
    Option Explicit
    Public Sub Main()
    Dim varPath As Variant
    On Error GoTo Fin
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:=ThisWorkbook.Path & "\" & ActiveSheet.Name, _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    If Not varPath = False Then
    If Dir(varPath)  "" Then
    Select Case MsgBox("Datei überschreiben?", 4 Or 32 Or 0, "Datei")
    Case vbYes
    With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    End With
    Sheets("Tabelle1").Copy
    With ActiveWorkbook
    .SaveAs varPath, 51
    .ExportAsFixedFormat 0, varPath
    .Close False
    End With
    End Select
    Else
    Sheets("Tabelle1").Copy
    With ActiveWorkbook
    .SaveAs varPath, 51
    .ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=True
    .Close False
    End With
    End If
    Else
    MsgBox "Abgebrochen..."
    End If
    Fin:
    With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    End With
    If Err.Number  0 Then MsgBox "Fehler: " & _
    Err.Number & " " & Err.Description
    End Sub
    
    Danke erst mal
    Jens
    Anzeige
    Das kannst Du...
    17.11.2016 06:33:55
    Case
    Hallo Jens, :-)
    ... so schreiben: ;-)
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:="C:\Temp\" & "Test.xlsx", _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    
    Hier ist das Verzeichnis "C:\Temp\" und der vorgegebene Dateiname "Test.xlsx". Der ist gleich blau hinerlegt und kann überschrieben werden. Den kannst Du auch weglassen, dann ist das Feld mit Dateiname leer: ;-)
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:="C:\Temp\", _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    
    Servus
    Case

    Anzeige
    AW: Das kannst Du...
    17.11.2016 20:05:17
    Jens
    Danke Case,
    jetzt geht es wie es soll-
    super Hilfe...
    Gruß Jens

    329 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige