Een enkele pagina afdrukken in VBA

Hallo

 

Ik wil graag alleen het actieve blad in vba afdrukken ? Omdat het daar alle vellen afdrukt ...

Dit zou enorm bij mij passen

 

Momenteel ben ik hiermee aan het printen: (Deel van de code)

 

    Stel ps in = Model.PageSetup
    PS. PrinterPaperSize = Model_PaperSize
    PS. Oriëntatie = Model_Orientation
    PS. ScaleToFit = Model_ScaleToFit
   
    Model.PrintDirect

 

Bedankt

U moet ergens in uw VBA toevoegen voordat u begint met afdrukken

 

Dim swdoc als SldWorks.ModelDoc2
Dim swSheet als SldWorks.Sheet

Stel swSheet = swdoc in. Stroomtje ophalen

 

En dus zou het uw actieve blad moeten afdrukken

Ik zie niet in hoe dat mijn probleem zou oplossen, want we zeggen het nooit tegen de printer of in de afdrukinstellingen. maar ik zal het toch proberen.

Ik weet niet of dit je probleem zal oplossen. Maar persoonlijk weet ik dat het mijn actieve pagina afdrukt als ik dat doe.

 

Aan de andere kant, misschien ben ik een beetje lichtgeraakt, misschien is het slecht geformuleerd van jouw kant... Ik weet in ieder geval zeker dat het niet vrijwillig van uw kant is. Maar je moet voorzichtig zijn met de toon die je door je woorden gebruikt. :)

1 like

Oh al mijn excuses, ik bedoelde het echt niet zo slecht. Het spijt me echt.

 

Wat mijn probleem betreft, uw oplossing lost mijn zaak niet op.

Bedankt!

1 like

Hallo

Een macro is hier beschikbaar:

https://forum.solidworks.com/thread/64218#344104

 

2 likes

Ik heb het net gedownload en ik was in staat om deze code ervan te krijgen:

 

  Voor i = 0 Naar UBound(vSheetNames)
        Als vSheetNames(i) = SheetName dan
            MsgBox ("Afdrukken" + Str(i))
            Model.Extension.PrintOut2 i + 1, 1, Onwaar, "", ""
            Afsluiten voor
        Anders
            MsgBox ("Niet deze pagina")
        Einde als
    volgende i

 

maar helaas werkt het niet, en dat komt door de "pageArray", want deze code werkt:

  pageArray(0) = 1
  vPageArray = pageArray

  Model.Extension.PrintOut2 vPageArray, 1, Onwaar, "", ""

 

Ik begrijp niet waarom

Blijkbaar in plaats daarvan dit:

 

            pageArray(0) = i + 1
            pageArray(1) = i + 1
            pageArray(2) = i + 1
            pageArray(3) = i + 1
            vPageArray = pageArray

 

Het werkt... Bedankt, ik zal nog een of twee pogingen doen om te bevestigen.

Als je je volledige macro kunt posten, zodat deze later door anderen kan worden gebruikt, zou dat leuk zijn.