Excel Druckdialog manipulieren (nur bestimmte Seiten drucken)



  • Moin.
    So, die Suchfunktion habe ich jetzt gehörig abgenutzt, der Knopf ist bereits etwas locker. Auch die FAQ hat mich nicht weiter gebracht, bei folgendem Problem:

    Ich möchte eine Seite (die erste) aus einer Excel-Tabelle drucken, die aber aus mehreren Seiten besteht.

    Die FAQ, Google etc. haben mich bisher wirklich weit voran gebracht, was Excel-Automation angeht, aber diesen speziellen Punkt bekomme ich nicht hin.

    Leider scheint OleFunction("PrintOut"); keine weiteren Argumente zu akzeptieren.

    Nachdem ein in Excel aufgezeichnetes Makro das hier geliefert hat:

    Application.ActivePrinter = "Adobe PDF auf Ne02:"
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
    

    habe ich diese Dinge hier ausprobiert:

    MyWS.OleFunction("PrintOut From:=1, To:=1, Copies:=1, Collate:=True");
    

    (lieferte den Fehler: "Name unbekannt")

    MyWS.OleFunction("PrintOut", "From:=1", "To:=1", "Copies:=1", "Collate:=True");
    

    da wollte er die Parameter nicht

    Nachdem ich bei Microsoft dieses hier gefunden habe:

    testDoc.PrintOut(covFalse,              // Background.
                            covOptional,           // Append.
                            covOptional,           // Range.
                            covOptional,           // OutputFileName.
                            covOptional,           // From.
                            covOptional,           // To.
                            covOptional,           // Item.
                            COleVariant((long)2),  // Copies.
                            covOptional,           // Pages.
                            covOptional,           // PageType.
                            covOptional,           // PrintToFile.
                            covOptional,           // Collate.
                            covOptional,           // ActivePrinterMacGX.
                            covOptional            // ManualDuplexPrint.
                            covOptional,           // PrintZoomColumn  New with Word 2002
                            covOptional,           // PrintZoomRow          ditto
                            covOptional,           // PrintZoomPaperWidth   ditto
                            covOptional);          // PrintZoomPaperHeight  ditto
    

    habe etwas in der Art hier ausprobiert, hat aber auch nicht hingehauen:

    MyWS.OleFunction("PrintOut",
               TNoParam,TNoParam,TNoParam,
               1,1,TNoParam,
               TNoParam,TNoParam,TNoParam,
               TNoParam,TNoParam,1,
               TNoParam,TNoParam,TNoParam,
               TNoParam,TNoParam,TNoParam);
    

    (Mit unterschiedlich vielen Parametern).

    Hat jemand von Euch eine Idee, wie ich darauf Einfluß nehmen kann?
    Die Idee, einfach das Sheet zu verkleinern, geht nicht, weil darin Daten versteckt sind, die einen Graphen füttern. Wenn ich die also abschneide, funktioniert der Graph auch nicht mehr.

    Markus.
    🙂



  • Hallo,
    ich habe z.Zt. auch ein Druckproblem in Excel aus meiner Anwendung heraus. Ich möchte eigentlich nur mein aktuelles Exceldokument komplett drucken. Hast Du vielleicht schon einen Erfolg erziehlt?
    Würde mich freuen wenn Du darüber berichten könntest, da Dein Posting ja schon etwas her ist...

    Danke



  • Ich habe leider bisher auch noch keine Lösung für mein oben beschriebenes
    Problem gefunden.
    Inzwischen habe ich das aber anders gemacht, ich habe die für den Graphen
    relevanten Daten einfach auf ein anderes Sheet ausgelagert, so daß das
    zu druckende Sheet auch wirklich nur noch eine einzelne Seite ist.

    Ich bin mir nicht ganz sicher, ob ich Deine Frage richtig verstanden
    habe, ich versuch's aber trotzdem mal:

    Mit einer der oben genannten Versionen (ich glaube der ersten) meines
    Versuchs kannst Du auf jeden Fall ein Sheet drucken, allerdings nur ganz,
    nicht einzelne Seiten. Ich bin gerade etwas zu faul zum nachschauen, aber
    in der FAQ gibt es Anleitungen, wie Du von einem Sheet zum anderen wechselst.
    Im Prinzip müßtest Du dann die Sheets halt einzeln drucken, ist vielleicht
    etwas aufwendig, aber auf diese Weise kommst Du um das
    Druckdialog-manipulieren-Problem herum.

    Viel Erfolg! 🙂

    Markus


Anmelden zum Antworten