Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel Dateien als PDF drucken - kleine Probleme in der Umsetzung mehrerer Tabellenblätter

Frage Microsoft Microsoft Office

Mitglied: DeeJayBee

DeeJayBee (Level 1) - Jetzt verbinden

17.09.2014, aktualisiert 13:04 Uhr, 2404 Aufrufe, 4 Kommentare

Hallo zusammen,

ich versuch mich mal kurz zu fassen:

Aufgabe:
Einen Ordner mit Excel-Dateien als PDFs ausdrucken.
Jedes Excel-Dokument enthält mehrere Tabellenblätter (Page 1, Page 2, ..., Data, Adresses, sonstwas...) Die Anzahl der "Page x" Blätter ist inhaltabhäng.
Es sollen nur die Tabellenblätter "Page x" gedruckt werden - alle in ein PDF pro Excel-Dokument.

Lösungsansatz:
Verwendete Excel-Version: Excel 2003, .xls-Dateien
PDF-Drucker: FreePDF
Makro in einer Datei, wie folgt:

Pseudo-Sprache:
Öffne xls-Datei aus Verzeichnis,
Markiere alle Tabellenblätt, wenn in Bezeichnung an Stelle 6 eine Zahl vorkommt (z.b. Page 1)
Drucke Selektion an PDF Drucker (fest eingestellter Ausgabepfad)
Nächste Datei...

Sub Ordner_bearbeiten_RE() 
 
Dim StrVerzeichnis As String 
Dim StrTyp As String 
Dim Dateiname As String 
 
Dim wb As Workbook 
Dim wksX As Worksheet 
 
StrVerzeichnis = "C:\daten\IT8\xls\Re\" 
StrTyp = "*.xls" 
Dateiname = Dir(StrVerzeichnis & StrTyp) 
Do While Dateiname <> "" 
         
        ' Variablen für Array initialisieren 
        Dim varArr() As Variant 
        ReDim varArr(0) 
 
        Set wb = Workbooks.Open(StrVerzeichnis & Dateiname) 
        For Each wksX In wb.Worksheets 
     
            If IsNumeric(Mid(wksX.Name, 6, 1)) Then            'Verwende Tabellenblatt, wenn an Position 6 eine Zahl steht ("page X") 
                varArr(UBound(varArr)) = wksX.Name 
                ReDim Preserve varArr(UBound(varArr) + 1) 
            End If 
         
        Next wksX 
         
        ReDim Preserve varArr(UBound(varArr) - 1)       ' Array durchgehen und alle Tabellenblätter markieren 
        Sheets(varArr).Select 
        ' Selektierte Tabellenblätter drucken 
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ 
            "FreePDF XP - IT8-RE", Collate:=True 
         
        wb.Close False 
 
    Dateiname = Dir 
Loop 
End Sub


Problem:
Wenn Dokument nur Page 1 und keine weiteren "Page x" enthält läuft alles prima.
Wenn mehrere Seiten "Page x" vorhanden sind, bekomme ich irgendwie 2 Drucke, einmal Seite 1 und einmal die restlichen Seiten.
Da der PDF-Drucker in dem Fall das Dokument mit Seite 1 überschreibt (gleicher Name) bleibt ein Dokument übrig, wo Seite 1 fehlt.

Ich finde den Fehler leider nicht. Hat jemand eine Idee?
Vielleicht hat auch jemand eine bessere Idee?

Freue mich über Eure Hinweise
LG Daniel
Mitglied: Pjordorf
17.09.2014 um 13:18 Uhr
Hallo,

Zitat von DeeJayBee:
Vielleicht hat auch jemand eine bessere Idee?
Klappt es mit deiner Version von FreePDF denn manuell?
Andere Version von FreePDF?
Anderer PDF Generator z.B. PDFCreator kanns?
Adobe Acrobat kanns?

Gruß,
Peter
Bitte warten ..
Mitglied: DeeJayBee
17.09.2014 um 13:31 Uhr
Hallo Peter,

es nicht das Problem des PDF-Druckers,
Ich sehe, dass Excel 2 Druckjobs abschickt.
Einmal "Seite 1" und einmal "Seite 2 - Rest"

Wenn Excel den Druckjob "Seite 1 - Rest" drucken würde, wäre das Problem passé.
Es bringt mir leider auch nichts, wenn ein PDF Drucker 2 Dokumente abspeichern würde, es muss in einem sein.

Gruß
Daniel
Bitte warten ..
Mitglied: Pjordorf
17.09.2014 um 14:15 Uhr
Hallo,

Zitat von DeeJayBee:
Einmal "Seite 1" und einmal "Seite 2 - Rest"
Du nutzt VBA. Dann nutze den Einzelschritt um zu sehen wann was passiert und dir die Ergebnisse druckt. Dann siehst du wann Seite 1 gedruckt wird und wann Seite2 - x gedruckt wird. Sich die Werte auch ausgeben lassen kann helfen (debug.print). Auch sich die Arrays und deren Inhalt sowie Zähler ansehen wird dir helfen. F8 ist dein Freund im VBA

Gruß,
Peter
Bitte warten ..
Mitglied: 116301
17.09.2014 um 16:26 Uhr
Hallo DeeJayBee!

Versuchs mal damit:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Private Const strTyp = "*.xls" 
05.
Private Const strVerzeichnis = "C:\daten\IT8\xls\Re\" 
06.
 
07.
Private Const strName = "Page #*" 
08.
Private Const strPrinter = "FreePDF XP - IT8-RE" 
09.
 
10.
Sub Ordner_bearbeiten_RE() 
11.
    Dim objSheet As Worksheet, objSheetList As Object, strDateiname As String 
12.
     
13.
    Set objSheetList = CreateObject("Scripting.Dictionary") 
14.
     
15.
    strDateiname = Dir(strVerzeichnis & strTyp) 
16.
     
17.
    Do While strDateiname <> "" 
18.
        With Workbooks.Open(strVerzeichnis & strDateiname) 
19.
            For Each objSheet In .Worksheets 
20.
                If objSheet.Name Like strName Then 
21.
                    objSheetList.Add objSheetList.Count, objSheet.Name 
22.
                End If 
23.
            Next 
24.
         
25.
            If objSheetList.Count Then 
26.
                .Sheets(objSheetList.Items).PrintOut Copies:=1, ActivePrinter:=strPrinter 
27.
            End If 
28.
                  
29.
           .Close False 
30.
        End With 
31.
         
32.
        objSheetList.RemoveAll:   strDateiname = Dir 
33.
    Loop 
34.
End Sub
Grüße Dieter
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
VBA Excel Tabellenblätter als PDF speichern
gelöst Frage von Florian86Microsoft Office8 Kommentare

Hallo, gib es die Möglichkeit per VBA ein einzelnes Tabellenblatt als PDF zuspeichern. Derzeit speichere ich immer die komplette ...

Webentwicklung
Umsetzung einer kleinen Website für Künstler
gelöst Frage von oskopikWebentwicklung31 Kommentare

Hallo, eine Kunde von mir möchte folgendes Projekt realisieren. Eine Website für Künster wo sich jeder anmelden kann, ein ...

Microsoft Office
Excel 2010, PDF-Hyperlinks drucken
gelöst Frage von NichitaMicrosoft Office4 Kommentare

Hallo! Ich habe eine Exceldatei (MS 2010, Win 7 32-Bit, VB 6) in der verschiedene Hyperlinks, die auf PDF´s ...

Microsoft Office
Excel 2010: Tabellenblatt verknüpfen
gelöst Frage von honeybeeMicrosoft Office3 Kommentare

Hallo, kann ich in Mappe A eine Verknüpfung von einem Tabellenblatt aus Mappe B erstellen? Ich möchte keine Formelverknüpfung, ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 11 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 13 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Netzwerkgrundlagen
Laufwerkszuordnung mit zwei IPs
Frage von Alex29Netzwerkgrundlagen12 Kommentare

Hallo in die Runde, Ich als Hobbyadmin hätte mal wieder eine Frage an die Profis. Ich habe ein Netzwerk ...