Anzeige
Archiv - Navigation
1120to1124
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblätter via VBA als einzelne pdf-Dateien

Tabellenblätter via VBA als einzelne pdf-Dateien
Sandra
Hallo meine Lieben.
Wieder ein Problem :-( *heul* ...
Ich habe eine docx-Datei mit gaaanz vielen einzelnen Tabellenblättern. Nun will ich daraus eine pdf generieren. Jedes Tabellenblatt soll eine pdf-Datei werden. Die Anzahl der Tabellenblätter darf aber kein fixer Wert sein, da ich diesen VBA-Code dann gerne an mehreren Stellen einsetzen würde.
Eine DICKE 1++++++ gibt es von mir, wenn es machbar ist, dass der Dateiname = dem Tabellennamen ist.
Geht so etwas?
Ich bin jetzt max. zwei Stunden offline - dann aber wieder da. Wäre schön wenn wir das heute noch auf die Reihe kriegen.
P. s. Wisst Ihr, ob in Hamburg VBA-Kurse angeboten werden und auf was man ggfs. achten muss? Ich würde mich dahingehend nämlich sehr sehr sehr gerne weiterbilden. Vielleicht könnte ich dann mal Helfer sein und nicht immer die Rolle der Hilflosen übernehmen.... :-)
Lieben Dank und Gruß
Eure Sandra
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 20:37:48
Ramses
Hallo
Ohne VBA-Kurs,... einfach mal den Makrorekorder benutzen.
Da lernst du auch einiges
Option Explicit

Sub PDF_Print()
    'Makrorekorder
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\Name\Desktop\Mappe2.pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    True
End Sub

Sub PDF_Print_Sheet()
    'Modifiziert
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\Name\Desktop\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    True
End Sub

Gruss Rainer
Anzeige
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 20:58:00
Sandra
Hallo Rainer,
danke für den Tipp. Ich habe es schon hin und wieder mit dem Rekorder probiert, aber ich habe das Gefühl immer zu spezielle Dinge zu wollen.
Dieser Code funktioniert schon ganz gut:
Sub PDF_Print_Sheet()
'Modifiziert
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Name\Desktop\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Es gibt nur das Problem, dass ich jedes einzelne Tabellenblatt nach und nach anklicken muss und dann immer wieder das Makro ausführen. Das mit der Umbenennung (Dateiname) ist wirklich SUPER!!!! Ich habe eben mal alle Arbeitsblätter markiert, aber dann habe ich wieder eine Datei. :(
Und ein Problem habe ich noch. Dieser Teil des Codes:
C:\Users\Name\Desktop\"
muss doch angepasst werden. Also "Name" muss geändert werden. Das bedeutet aber, dass jeder Mitarbeiter sein eigenes Makro benötigt. Kann man auch das umgehen bzw automatisieren?
Vielen herzlichen Dank!!!
Gruß
Sandra
Anzeige
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 21:03:30
Josef
Hallo sandra,
so?
Sub PDF_Print_Sheet()
  'Modifiziert
  Dim strName As String
  
  strName = Environ("USERPROFILE") & "\Desktop\"
  
  ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=strName & ActiveSheet.Name & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub

Gruß Sepp

Anzeige
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 21:22:16
Sandra
Hallo Sepp,
die Variante von Rainer finde ich schon ganz gut:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "C:\Users\" & Environ("username") & "\Desktop\" & ActiveSheet.Name & ".pdf"
Ich muss das morgen nur mal an nem anderen Rechner testen. Im Prinzip ist es schon fast perfekt. Jetzt muss es nur noch möglich werden mehr als ein Arbeitsblatt oder auch alle Arbeitsblätter zu markieren und trotzdem jedes Arbeitsblatt als einzelne (richtig benannte) pdf zu erhalten.
Lieben Gruß
Sandra
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 21:04:49
Ramses
Hallo
Dann musst du halt alle Bedingungen gleich sagen.
Wir sind keine Hellseher
"....dass ich jedes einzelne Tabellenblatt nach und nach anklicken muss ..."
Du willst also mehrere Tabellenblätter auch anwählen können und trotzdem muss jede Tabelle in der eigenen PDF-Datei sein ?
"...muss doch angepasst werden..."
Ich weiss doch nicht wohin ihr drucken wollt ? Entweder lokal oder auf ein Netzlaufwerk oder einen fixen Pfad !?
Alternativ kannst du das auch so machen
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "C:\Users\" & Environ("username") & "\Desktop\" & ActiveSheet.Name & ".pdf"
Dann wird immer unter dem angemeldeten !!! Windows Benutzer gespeichert
Gruss Rainer
Anzeige
AW: Tabellenblätter via VBA als einzelne pdf-Dateien
03.12.2009 21:17:53
Sandra
Hallo Rainer.
Sei mir bitte nicht böse. Ich habe scheinbar öfter Schwierigkeiten damit zu sagen was ich will.
Also, ja ich möchte - egal wie viele Arbeitsblätter ich anklicke - es soll jedes als eine einzelne pdf ausgegeben werden. Und das Beste ist - wie von Dir vorgeschlagen - wenn die Dateien immer auf dem Desktop des angemeldeten Users gespeichert wird.
Lieben Gruß
Sandra
Worksheet.Selected !?
03.12.2009 23:13:59
Ramses
Hallo
Das wird nicht gehen. Ich kenne keine Möglichkeit abzufragen, WELCHES der Tabellenblätter in der Mappe ausgewählt ist und welches nicht. Das ist aber Voraussetzung dafür weil EXCEL eine solche Option selbst nicht anbietet.
Ich stelle die Frage daher auf offen.
Gruss Rainer
Anzeige
AW: Worksheet.Selected !?
04.12.2009 08:18:37
Sandra
Guten Morgen Rainer,
geht es denn, dass er bei Ausführung des Makros alle Arbeitsblätter als je eine Datei abspeichert? Es muss ja nicht so speziell sein, dass nur markierte Arbeitsblätter gedruckt werden . wäre klasse keine Frage, aber einzeln anklicken und drucken ist auch schon klasse. Schön wäre es noch, wenn ich wenigstens alle auf einmal drucken kann, aber dann trotzdem für jedes Arbeitsblatt eine Datei bekomme.
Lieben Gruß
Sandra
AW: Worksheet.Selected !?
04.12.2009 10:15:28
Ramses
Hallo
Jogy hat recht. Probier das mal aus
Sub PDF_Print_Sheet()
    'Modifiziert
    Dim wks As Worksheet
    For Each wks In ActiveWindow.SelectedSheets
        wks.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
        "C:\Users\" & Environ("Username") & "\Desktop\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Next wks
End Sub

Gruss Rainer
Anzeige
AW: Worksheet.Selected !?
04.12.2009 10:27:26
Sandra
Hallo Rainer, hallo Jogy,
Ich habe es mal ausprobiert. Habe zwei Tabellenblätter markiert und dann ausgeführt. Leider kommt dabei eine Datei statt zwei heraus. :-(
Gruß
Sandra
Sorry,.. Lapsus meinerseits
04.12.2009 11:17:27
Ramses
Hallo
Es muss natürlich statt "ActiveSheet.Name" "wks.Name" heissen.
Sonst wird die erstellte Datei immer wieder mit der neuen überschrieben :-(
Sub PDF_Print_Sheet()
    'Modifiziert
    Dim wks As Worksheet
    For Each wks In ActiveWindow.SelectedSheets
        wks.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
        "C:\Users\" & Environ("Username") & "\Desktop\" & wks.Name & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Next wks
End Sub

Gruss Rainer
Anzeige
AW: Sorry,.. Lapsus meinerseits
04.12.2009 13:45:22
Sandra
Hallo Rainer.
Das funktioniert leider auch nicht. Zwar bekomme ich zwei Dateien, aber mit identischem Inhalt - nämlich den, beider Arbeitsblätter. :-(
Lieben Gruß
Sandra
Das nächste Mal teste ich vorher...
04.12.2009 14:23:42
Ramses
Hallo
So geht es. Getestet
Sub PDF_Print_Sheet()
    'Modifiziert
    Dim wks As Worksheet
    For Each wks In ActiveWindow.SelectedSheets
        With wks
            .Select
            .ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
            "C:\Users\" & Environ("Username") & "\Desktop\" & .Name & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            True
        End With
    Next wks
End Sub

Gruss Rainer
Anzeige
AW: Das nächste Mal teste ich vorher...
04.12.2009 15:04:38
Sandra
*FREU*
Hallo Rainer.
JA - es funktioniert. Leider gibt es dieses böse Word - ABER...
Ich habe das Makro (eigentlich) schon dahingehend angepasst, dass es auf "allen" Windows-Oberflächen läuft. Auf Vista + Windows7 läuft es. Bei xp scheinbar nicht. Kann das sein?
Das Makro sieht so aus:
Sub PDF_Print_Sheet()
'Danke Rainer'
'Modifiziert
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
With wks
.Select
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("userprofile") & "\Desktop\" & .Name & ".pdf", Quality:=xlQualityStandard,  _
_
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Next wks
End Sub
Desweiteren habe ich (Vista) das Problem, dass ich immer eine Fehlermeldung bekomme, wenn ich die Datei öffne. Das Makro funktioniert (bei mir) trotzdem, aber so eine Fehlermeldung nervt.
Hier mal ein Screenshot:
Userbild
Interessant bei der Fehlermeldung ist, dass die Datei "091204 DHL.xlsm" heißt. So wie es in der Fehlermeldung steht hieß sie mal... *grübel*...
Kriegt man die Weg?
Liebste Grüße
Sandra
Anzeige
AW: Das nächste Mal teste ich vorher...
04.12.2009 17:14:19
Ramses
Hallo
Das Makro funktioniert NUR unter Office 2007.
Ältere Versionen werden nicht unterstützt. Da muss eine andere Variante verwendet werden um ein PDF zu erzeugen. Das ist dann jedoch abhängig vom jeweils installierten PDF Programm.
Gruss Rainer
AW: Das nächste Mal teste ich vorher...
04.12.2009 17:52:36
Sandra
Hallo Rainer,
wir haben alle Office 2007 aber manche von uns XP, manche Vista und einige schon Windows 7. Bei dem Kollegen mit Windows7 taucht die o. g. Fehlermeldung nicht auf. Ich meine - das Makro läuft. Das ist das wichtigste, aber die Fehlermeldung nervt. Bei den Kollegen mit xp gab es auch noch das eine oder andere Problem, aber ich hoffe das selber beseitigen zu können.
Jetzt ist erst einmal Wochenende. Mein Haus (Baustelle) ruft. Daher bin ich erst wieder ab Montag Morgen online. Vielen herzlichen Dank für die unermüdliche Hilfe!!!!
Liebe Grüß
Sandra
AW: Das nächste Mal teste ich vorher...
04.12.2009 17:56:23
Ramses
Hallo
Der PDF Export ist ein AddIn das separat installiert werden muss.
Schau mal ob das AddIn auf den XP Rechnern installiert worden ist.
Gruss Rainer
AW: Das nächste Mal teste ich vorher...
05.12.2009 09:39:09
Sandra
Guten Morgen Rainer. Mit AddIn meinst Du dieses, oder:
Userbild
Ich werde mich da mal kundig machen.
Weißt Du, warum ich immer - direkt nach dem öffnen der Datei - diese Fehlermeldung bekomme, die ich gestern schon einmal veröffentlicht habe?
Liebe Grüße
Sandra
AW: Das nächste Mal teste ich vorher...
05.12.2009 10:01:03
Ramses
Hallo
Nein, das ist der Adobe Acrobat. Der wird hier als "virtueller Drucker" verwendet.
Der Code den ich dir gezeigt habe, sollte eigentlich das Office eigene AddIn verwenden.
Userbild
Offensichtlich funktioniert das auch mit dem Adobe-Acrobat. Zumindest zeigt der Makrorekorder den gleichen Code, unabhängig davon ob das Office-Addin oder der Adobe Drucker verwendet wird.
Wenn du dort einen Fehler hast, würde ich mal den Acrobat neu installieren. Eventuell ist dort ein Fehler bei der Installation geschehen. Sorry,... aus der Distanz ist das nicht klar zu erkennen wo/warum der Fehler hier auftritt.
Probier doch mal das Addin
http://www.microsoft.com/downloads/details.aspx?familyid=4d951911-3e7e-4ae6-b059-a2e79ed87041&displaylang=de
zu installieren und schau mal ob der Fehler dann nicht mehr auftritt
Gruss Rainer
AW: Worksheet.Selected !?
04.12.2009 08:43:22
JogyB
Hi.
Zumindest unter Excel 2003 kann man noch abfragen, welche Blätter ausgewählt sind, die stehen in ActiveWindow.SelectedSheets
Die Mappe muss dazu natürlich aktiv sein, aber das ist in dem Fall ja das kleinste Problem.
Gruss, Jogy

246 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige