Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

pdf speichern unter
#1
Hallo,

ich habe mir ein Makro erstellt, mit dem ich eine liste von allen für mich überflüssigen zeilen befreie und die liste dann als pdf mit einem aus der liste ausgelesenen namen an einen bestimmten speicherort ablege.

das klappt alles so weit sehr gut, nur möchte ich, dass der mir nicht die datei immer an die gleiche stelle legt sondern mich vorher fragt wo ich sie hin haben will...
den namen soll er automatisch generieren und auch "speichern als pdf" soll ausgewählt sein aber den ort möchte ich individuell bestimmen...

geht das?

hier mein makro:

Code:
Sub drucken2()
Dim iRowL As Integer, iRow As Integer
'Array fuer Druckbedingung und Seiten
Dim arrPrint, arrSeiten
'Array fuer Druckbedingung fuellen - hier die Zellen jedes Blattes definieren
arrPrint = Array("C6", "B54", "C104", "B152", "C202", "B250", "C300", "B348", "C398", "B446", "C496", "B544", "C594", "B642", "C692", "B740", "C790", "B838", "C888", "B936")
'Array fuer Seiten
arrSeite = Array("1:49", "50:98", "99:147", "148:196", "197:245", "246:294", "295:343", "344:392", "393:441", "442:490", "491:539", "540:588", "589:637", "638:686", "687:735", "736:784", "785:833", "834:882", "835:931", "932:981")
'Nummer der zuletzt genutzten Zeile anhand Spalte C feststellen
iRowL = Cells(Rows.Count, 3).End(xlUp).Row
'Schleife bis zur letzten genutzten Zeile
For iRow = 1 To iRowL
   'Wenn Zellwert 0, dann
   If Cells(iRow, 3).Value = "0" Then
     'Zeile ausblenden
     Rows(iRow).Hidden = True
   'Ende Wenn Zellwert 0, dann
   End If
'Ende Schleife bis zur letzten genutzten Zeile
Next iRow
'Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
For iRow = 0 To UBound(arrPrint)
  'Wenn Druckbedingung = "-----", dann
  If Range(arrPrint(iRow)) = "0" Then
    'Seite ausblenden
      Rows(arrSeite(iRow)).Hidden = True
  'Ende Wenn Druckbedingung = "-----", dann
  End If
'Ende Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
Next iRow

'Application.Dialogs(xlDialogSaveAs).Show
Dateiname = DateiPfad & Range("B1") & " " & Range("C3") & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Dateiname, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

Rows.Hidden = False
End Sub

relevant dürften ja nur die letzten paar zeilen sein

p.s. ich habe es nicht geschafft als spoiler zu schreiben geht das irgendwie?
Antworten Top
#2
Hallo,

mal völlig ungetestet hier rein geschrieben

Code:
'Variablendekleration am Anfang des Codes
Dim strDateiname As String


'Application.Dialogs(xlDialogSaveAs).Show

strDateiname = InputBox("Wählen Sie einen Dateinamen aus")
Dateiname = DateiPfad & strDateiname & ".pdf"

PS: Was meinst Du eigentlich mit deinem letzten Satz?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Nee, so wie ich das verstehe, will er den Speicherpfad variabel haben, da ist die Inputbox suboptimal, weil fehlerträchtig
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#4
Hallo Michael,

Du hast Recht, das habe ich überlesen. :@:@:@
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Hallöchen,

hier mal mein Vorschlag zum Speichern der Exceldaten als pdf.

Code:
Sub SpeichernUnter()
'Variablendeklaration
'Variant
Dim Dateiname As Variant 'Wegen unterschiedlicher Rueckgaben beim Dialog
'Dateiname festlegen
Dateiname = DateiPfad & Range("B1") & " " & Range("C3") & ".pdf"
'Dialog zur Auswahl des Dateinamens aufrufen
Dateiname = Application.GetSaveAsFilename(InitialFileName:=Dateiname, _
            FileFilter:="PDF Dateien (*.pdf), *.pdf")
'Bei Abbruch Makro verlassen
If VarType(Dateiname) = 11 Then Exit Sub
'Datei als pdf speichern
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
   Dateiname, Quality:=xlQualityStandard, _
   IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
   False
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • plau
Antworten Top
#6
top danke das klappt :)

jetzt habe ich das problem, dass wenn ich das makro ausführe, aber dann nicht speicher sondern abbrechen drücke, das er mir die vorher ausgeblendeten zeilen nicht wieder einblendet...

wenn ich speicher dann zeigt er mir sie wieder an

ich poste einfach mal mein ganzes makro

Code:
Sub drucken2()
Dim iRowL As Integer, iRow As Integer
'Array fuer Druckbedingung und Seiten
Dim arrPrint, arrSeiten
'Array fuer Druckbedingung fuellen - hier die Zellen jedes Blattes definieren
arrPrint = Array("C6", "B54", "C104", "B152", "C202", "B250", "C300", "B348", "C398", "B446", "C496", "B544", "C594", "B642", "C692", "B740", "C790", "B838", "C888", "B936")
'Array fuer Seiten
arrSeite = Array("1:49", "50:98", "99:147", "148:196", "197:245", "246:294", "295:343", "344:392", "393:441", "442:490", "491:539", "540:588", "589:637", "638:686", "687:735", "736:784", "785:833", "834:882", "835:931", "932:981")
'Nummer der zuletzt genutzten Zeile anhand Spalte C feststellen
iRowL = Cells(Rows.Count, 3).End(xlUp).Row
'Schleife bis zur letzten genutzten Zeile
For iRow = 1 To iRowL
   'Wenn Zellwert 0, dann
   If Cells(iRow, 3).Value = "0" Then
     'Zeile ausblenden
     Rows(iRow).Hidden = True
   'Ende Wenn Zellwert 0, dann
   End If
'Ende Schleife bis zur letzten genutzten Zeile
Next iRow
'Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
For iRow = 1 To iRowL
    If Cells(iRow, 2).Value = "0" Then
        Rows(iRow).Hidden = True
    End If
Next iRow
For iRow = 0 To UBound(arrPrint)
  'Wenn Druckbedingung = "-----", dann
  If Range(arrPrint(iRow)) = "0" Then
    'Seite ausblenden
      Rows(arrSeite(iRow)).Hidden = True
  'Ende Wenn Druckbedingung = "-----", dann
  End If
'Ende Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
Next iRow

'Application.Dialogs(xlDialogSaveAs).Show
Dateiname = DateiPfad & Range("B1") & " " & Range("C3") & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Dateiname, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
Dateiname = Application.GetSaveAsFilename(InitialFileName:=Dateiname, _
            FileFilter:="PDF Dateien (*.pdf), *.pdf")
'Bei Abbruch Makro verlassen
If VarType(Dateiname) = 11 Then Exit Sub
'Datei als pdf speichern
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
   Dateiname, Quality:=xlQualityStandard, _
   IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
   False
Rows.Hidden = False
End Sub
Antworten Top
#7
Hallo,

Du verläßt das Makro wenn Du abbrichst. Wenn vorher die Zeilen noch eingeblendet werden sollen, mache die Zeile so

Code:
If VarType(Dateiname) = 11 Then Rows.Hidden = False: Exit Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • plau
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste