Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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?
to 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 7 / Office 2007
to 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  Smile
Michael

Win 7 64 bit / Excel 2007/2016
to top
#4
Hallo Michael,

Du hast Recht, das habe ich überlesen. AngryAngryAngry
Gruß Stefan
Win 7 / Office 2007
to 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-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
plau
to top
#6
top danke das klappt Smile

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
to 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 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
plau
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
Brick Anzahl gleicher Werte unter Duplikatoren marinko 1 32 07.12.2016, 11:10
Letzter Beitrag: BoskoBiati
  [HELP NEEDED]Arbeitszeiten, Plus- und Minusstunden unter Bezug auf Pausen berechnen IchCheckDasNicht 6 103 06.12.2016, 16:23
Letzter Beitrag: Wilfried Höttl
  Werte in Userform unter bestimmter Bediengung michel34497 5 99 12.11.2016, 20:50
Letzter Beitrag: schauan
  Datum unter Bedingung in einem Bereich gesucht leipzigfragt 12 164 24.10.2016, 14:25
Letzter Beitrag: neopa
  Summe Wenn unter der Bedingung dass Sascha1990 2 207 15.09.2016, 07:52
Letzter Beitrag: Luffy
  SummeWenn unter der Bedingung dass Sascha1990 3 156 12.09.2016, 14:22
Letzter Beitrag: Sascha1990
  Mehrere Ergebnisse ausgeben unter mehreren Suchkriterien jns 2 162 06.09.2016, 14:45
Letzter Beitrag: Jockel
  Aktuellsten Wert unter Eingabe von Kriterien heraussuchen Julia_a 10 457 08.08.2016, 16:56
Letzter Beitrag: Julia_a
  Mailto und Speichern unter... Mounzer 4 262 10.06.2016, 14:36
Letzter Beitrag: schauan
Question Zwei Tabellenblätter beim Speichern - in eine andere Daten zusätzlich speichern? randyh 3 333 29.04.2016, 15:16
Letzter Beitrag: schauan

Gehe zu:


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