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

Forumthread: Dateinamen aus 2 Zellen zusammensetzen

Dateinamen aus 2 Zellen zusammensetzen
11.12.2016 10:29:28
Andi
Guten Morgen,
Mein funktionierender Code für das Speichern funktioniert ganz gut- gleichzeitig Excel und PDF der Tabelle1 aus der Arbeitsmappe.
Der Speicherort ist bereits voreingestellt.
Kann man auch den Dateinamen- "bei Speichern unter" von einem anderen offenen Tabellenblatt übernehmen? Es sind im Blatt "Bearbeiten" die Zellen " Z14S23 und Z15S23 "
Also ein Doppelname zusammengefügt.
Geht das?
Wo müsste ich was im Code verändern?

  • Option Explicit
    
    Public Sub Speichern_in_PDF_XLSX()
    Dim varPath As Variant
    On Error GoTo Fin
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:="D:\Eigene Datein\Neuer Ordner\\", _
    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 Type:=xlTypePDF, Quality:=xlQualityStandard,  _
    IncludeDocProperties:=True, IgnorePrintAreas:=True
    .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
    


  • Grüße Andi
    Anzeige

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 10:52:15
    Hajo_Zi
    Hallo Andi,
    Worksheets("Bearbeiten").Range("Z14S23")& Worksheets("Bearbeiten").Range("Z15S23")
    mal ungetestet.

    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 11:12:18
    Andi
    Danke Hajo-
    wenn ich jetzt erfahren könnte- wo dies eingefügt werden müsste -
    denke mal hier dahinter "" InitialFileName:="D:\Eigene Datein\Neuer Ordner\", _ "
    das wäre super.
    Gruß Andi
    Anzeige
    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 11:24:09
    Hajo_Zi
    Hallo Andi,
    damit wird aber die Eingabe die der Benutzer gemacht hat ignoriert!!
    varPath = Application.GetSaveAsFilename( _
    InitialFileName:="D:\Eigene Datein\Neuer Ordner\\", _
    FileFilter:="Excel(*.xlsx), *.xlsx", _
    Title:="Save as XLSX and PDF")
    varPath = Left(varPath, InStrRev(varPath, "\")) & Worksheets("Bearbeiten").Range("Z14S23") & Worksheets("Bearbeiten").Range("Z15S23")
    Gruß Hajo
    Anzeige
    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 11:43:35
    Andi
    Danke Hajo-
    klappt noch nicht ganz- ich muß den dateinamen selbst eintragen.
    "Fehler 1004 Anwendungs oder objektdefiniert Fehler"
    Schade wenn nicht trage ich es eben ein.
    Gruß Andi
    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 11:51:18
    Hajo_Zi
    Hallo Andi,
    in meiner Datei ging mein Code. Deine Datei sehe ich nicht.
    Gruß Hajo
    Anzeige
    AW: Dateinamen aus 2 Zellen zusammensetzen
    11.12.2016 13:18:03
    Hajo_Zi
    vielleicht Fehler in der ZS Schreibweise. Ich arbeite damit nicht.
    varPath = Left(varPath, InStrRev(varPath, "\")) & Worksheets("Bearbeiten").Range("W14") & Worksheets("Bearbeiten").Range("W15")
    Gruß Hajo
    Anzeige
    AW: Dateinamen aus 2 Zellen zusammensetzen
    12.12.2016 22:54:51
    Andi
    Hallo Hajo,
    stimmt es waren die ZS Werte, dachte das ist besser. Werde dies wieder umstellen.
    Allerdings muss ich nun irgend Dateinamen vergeben- damit der Zell Text als Dateiname verwendet wird. Ist das so richtig? Oder kann man das noch verfeinern? Habe mal eine Datei angehangen- zum Testen.
    https://www.herber.de/bbs/user/110005.xlsm
    Danke erst mal.
    Andi
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Dateinamen aus zwei Zellen in Excel zusammensetzen


    Schritt-für-Schritt-Anleitung

    1. Öffne den VBA-Editor:

      • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
    2. Erstelle ein neues Modul:

      • Klicke im Menü auf Einfügen und wähle Modul.
    3. Füge den folgenden Code ein:

      Public Sub Speichern_in_PDF_XLSX()
         Dim varPath As Variant
         On Error GoTo Fin
         varPath = Application.GetSaveAsFilename( _
             InitialFileName:="D:\Eigene Datein\Neuer Ordner\" & _
             Worksheets("Bearbeiten").Range("Z14S23") & Worksheets("Bearbeiten").Range("Z15S23"), _
             FileFilter:="Excel(*.xlsx), *.xlsx", _
             Title:="Save as XLSX and PDF")
         If Not varPath = False Then
             If Dir(varPath) <> "" Then
                 Select Case MsgBox("Datei überschreiben?", vbYesNo)
                     Case vbYes
                         With Application
                             .ScreenUpdating = False
                             .DisplayAlerts = False
                         End With
                         Sheets("Tabelle1").Copy
                         With ActiveWorkbook
                             .SaveAs varPath, 51
                             .ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
                             IncludeDocProperties:=True, IgnorePrintAreas:=True
                             .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
    4. Anpassen des Codes:

      • Achte darauf, dass die Range("Z14S23") und Range("Z15S23") die richtigen Zellen in deinem Arbeitsblatt "Bearbeiten" referenzieren.
    5. Führe das Makro aus:

      • Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.

    Häufige Fehler und Lösungen

    • Fehler 1004: Anwendungs- oder objektdefinierter Fehler:

      • Stelle sicher, dass die Zellen Z14S23 und Z15S23 in der richtigen Schreibweise referenziert werden. Prüfe auch, ob das Arbeitsblatt "Bearbeiten" existiert.
    • Dateiname wird ignoriert:

      • Wenn der Benutzer einen Dateinamen eingibt, wird dieser ignoriert, wenn du den InitialFileName mit den Zellen aus dem Blatt kombinierst. Entferne die Zeile varPath = Application.GetSaveAsFilename(...) und setze den Dateinamen direkt.

    Alternative Methoden

    1. Verwendung von Formeln:

      • Du kannst die Zellen auch direkt in Excel mit einer Formel kombinieren, z.B.:
        =Z14S23 & Z15S23
    2. Direktes Einfügen in den Dateinamen:

      • Anstatt VBA, kannst du auch den Dateinamen manuell basierend auf den Zellwerten erstellen.

    Praktische Beispiele

    • Kombination von Zellen:

      • Nehmen wir an, Z14S23 enthält "Bericht" und Z15S23 enthält "2023". Der resultierende Dateiname wäre "Bericht2023".
    • Speichern als PDF:

      • Der Code ermöglicht es dir, die Datei sowohl als Excel- als auch als PDF-Datei zu speichern, indem er den gleichen Namen verwendet.

    Tipps für Profis

    • Debugging:

      • Nutze die Debug.Print-Funktion innerhalb deines Codes, um Werte zu überprüfen, bevor sie in varPath eingefügt werden.
    • Verwendung von Konstanten:

      • Definiere konstante Werte für häufig verwendete Pfade oder Dateinamen, um den Code klarer und wartbarer zu gestalten.

    FAQ: Häufige Fragen

    1. Kann ich auch andere Dateiformate speichern? Ja, du kannst das FileFilter-Argument anpassen, um andere Formate wie CSV oder TXT zu unterstützen.

    2. Muss ich Excel 2016 oder höher verwenden? Der gegebenen Code funktioniert in Excel 2010 und höher, solange VBA unterstützt wird. Achte darauf, die richtigen Objekte und Methoden für deine Excel-Version zu verwenden.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige