493 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (829 Punkte)

Hallo guten Tag möchte fragen ist es möglich den folgenden code so zu schreiben sodass nicht eine .pdf Datei entsteht, sondern eine .xlsx Datei.  Es gibt eine With Tabelle5, Tabelle6 und Tabelle7. Danke

Sub Pdf_Ausgabe_Reservierung() 'pdf ausgabe
    
Dim Spalte As Integer
Dim SpalteEnd As Integer
With Tabelle5           'Tabelle angeben z:B.Tabelle5
SpalteEnd = .UsedRange.Columns.Count

For Spalte = 7 To 40
If .Cells(42, Spalte).Value <= 0.1 Then 'kontrolliert wird in Zeile 42
.Columns(Spalte).Hidden = True
Else
.Columns(Spalte).Hidden = False
End If
Next Spalte

End With
    Dim strFileName As String, strPath As String, strFolder As String, varFile, blnOpen As Boolean
    strFolder = MsgBox("Soll die neue PDF-Datei im gleichen Ordner wie die Excel-Mappe gespeichert werden?", vbYesNoCancel, "PDF speichern")
    If strFolder = vbNo Then
        With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = ActiveWorkbook.Path
            .Title = "Verzeichnisauswahl"
            If .Show = -1 Then strPath = .SelectedItems(1)
        End With
    ElseIf strFolder = vbYes Then
        strPath = ActiveWorkbook.Path
    ElseIf strFolder = vbCancel Then
        Exit Sub
    End If
    strFileName = strPath & "\" & ActiveSheet.Range("AQ8").Value & ".pdf"
    Do Until Dir(strFileName, vbNormal) = ""
        varFile = Application.InputBox("Eine Datei mit diesem Namen existiert bereits. Bitte einen neuen Namen eingeben.", , "\" & ActiveSheet.Range("AQ8").Value & ".pdf")
        If varFile = False Then Exit Sub
        strFileName = strPath & "\" & varFile
    Loop
    blnOpen = IIf(MsgBox("Soll die Neue PDF-Datei nach dem Speichern geöffnet werden?", vbYesNo, "PDF öffnen") = vbYes, True, False)
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=blnOpen
    
    Range("o3").Select

End Sub

14 Antworten

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)
Hey,

damit solltest du mittlerweile umgehen können. Wie ich dir im anderen Thread schrieb, liegt das nur an der Zeile Option explicit. Du hast zwei Möglichkeiten: Entweder du schmeißt diese Zeile einfach raus oder du deklarierst die fehlende Variable mit Dim. Welche Variable wird denn markiert, die angeblich fehlt?

Mr. K.
0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)
Bearbeitet von jelena

Hallo Mr. K. das mit der Zeile Option explicit hatte ich wieder versäumt, Entschuldigung. Bitte um den richtigen code wenn dieser Befehl ein zweites mal ausgeführt wird. varFile = Application.InputBox("Eine Datei mit diesem Namen existiert bereits. Bitte einen neuen Namen eingeben.", , "\" & ActiveSheet.Range("AQ8").Value & ".xlsx")  sodass diese Meldung erscheint. Derzeit bekomme ich die folgende Fehlermeldung. https://supportnet.de/forum/?qa=blob&qa_blobid=12105010328883622009 hätte da noch eine Frage, was bedeutet Option explicit und soll diese Zeile Option explicit generell nicht vorhanden sein. Danke

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)
ausgewählt von jelena
 
Beste Antwort

Hey Jelena,

Option explicit ist eine Option die du verwenden kannst oder eben nicht. Damit erzwingst du die Deklaration von Variablen. Wenn du eine nicht deklarierte Variable verwendest kommt dann der von dir gezeigte Kompilierungsfehler. Diese Option wird zumeist verwendet um Tippfehler bei Variablennamen zu finden und zu umgehen. Wenn du keine Tippfehler machst, brauchst du diese Option nicht. Ohne diese Option kannst du auch Variablen verwenden ohne sie zuvor z.B. mit Dim zu deklarieren. Das spart dir jede Menge Tipparbeit und macht den Code übersichtlicher.

Die SaveAs Zeile wird deshalb markiert, weil du den Backslash doppelt verwendest. In die Inputbox darfst du nur den neuen Dateinamen eingeben. Aber ohne den "\"

varFile = Application.InputBox("Eine Datei mit diesem Namen existiert bereits. Bitte einen neuen Namen eingeben.", , ActiveSheet.Range("AQ8").Value & ".xlsx")

Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)
Hallo Mr. K. so soll es sein, besten Dank und ein schönes Wochenende.
...