Imprimer une seule page en VBA

Bonjour,

 

Je souhaiterais en vba imprimer uniquement la feuille active ? Car la il m'imprime toutes les feuilles ...

Ceci m'arrangerais énormément

 

Actuellement j'imprime avec ceci: (Une partie du code)

 

    Set ps = Model.PageSetup
    ps.PrinterPaperSize = Model_PaperSize
    ps.Orientation = Model_Orientation
    ps.ScaleToFit = Model_ScaleToFit
   
    Model.PrintDirect

 

Merci

Il faudrait que tu rajoute quelque part dans ton VBA avant l'action d'imprimer

 

Dim swdoc As SldWorks.ModelDoc2
Dim swSheet As SldWorks.Sheet

Set swSheet = swdoc.GetCurrentSheet

 

Et du coup ça devrait imprimer ta feuille active

Je ne vois pas en quoi ça règlerais mon problème, car on ne le dit jamais à l'imprimante ou dans les paramètres d'impressions. mais j'essaierai quand même.

Je ne sais pas si ça va régler ton problème. Mais perso je sais que ça imprime ma page active lorsque je fais ainsi.

 

Parcontre, peut-être suis-je un peu susceptible, peut-être es-ce mal formulé de ta part ... dans tous les cas je suis sur que ce n'est pas volontaire de ta part. Mais tu devrais faire attention au ton que tu emplois à travers tes mots. :)

1 « J'aime »

Oh toutes mes excuses, je ne voulais vraiment pas dire cela méchament. Je suis vraiment désolé.

 

Concernant mon problème, votre solution ne résoud pas mon cas.

Merci !

1 « J'aime »

Bonjour,

Une macro est disponible ici :

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

 

2 « J'aime »

Je viens droit de la télécharger et j'ai pu en obtenir ce code:

 

  For i = 0 To UBound(vSheetNames)
        If vSheetNames(i) = SheetName Then
            MsgBox ("Impression " + Str(i))
            Model.Extension.PrintOut2 i + 1, 1, False, "", ""
            Exit For
        Else
            MsgBox ("Pas cette page")
        End If
    Next i

 

mais malheureusement ça ne fonctionne pas, et c'est à cause du "pageArray", car ce code-ci fonctionne:

  pageArray(0) = 1
  vPageArray = pageArray

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

 

Je ne comprend pas pourquoi

Apparement en mettant ceci à la place:

 

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

 

ça fonctionne... Merci à vous, je vais encore faire un-deux essai pour confirmer.

Si tu peux poster ta macro complète pour qu'elle puisse servir à d'autres par la suite, ça serait sympa.