intercaler feuille lors de l'impression

  • Initiateur de la discussion Initiateur de la discussion neb110
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

neb110

XLDnaute Nouveau
Bonjour à tous,
Je n'ai pas trouvé de discussion sur mon sujet donc j'en est créé un.
Je suis en stage et je travaille sur un doc Excel qui me pose un problème.
Mon document comporte plusieurs feuilles et je travaille plus particulièrement sur deux d'entre elles. elles sont nommées OPTIMISATION et g9échéancier.
J'aimerai savoir si il est possible de faire par Macro la chose suivante:
-Demander à la macro d'imprimer les trois premières pages de la feuille optimisation puis intercaler la feuille g9échéancier puis imprimer les page qui reste de OPTIMISATION.
Second problème afin de faciliter la saisie des zones à remplir nous les avons mis en jaune pâle et j'aimerai savoir comment avant l'impression les mettre en blanches par une Macro.
Je vous remercie par avance de vos réponses.
 
Dernière édition:
Re : intercaler feuille lors de l'impression

Bonsoir Neb110 et bienvenu sur ce forum 😉

Pour ce que tu souhaites, tu peux utiliser ce code
Code:
Sub ImprimerFeuille()
  Dim Rng As Range
  ' Définir la zone des cellules dont la couleur est à changer
  Set Rng = Range("C14,F30,C46,F53")
  ' Supprimer la couleur avant impression
  Rng.Interior.ColorIndex = xlNone
  ' Lancer l'impression des 3 premières pages
  Sheets("OPTIMISATION").PrintOut From:=1, To:=3, Copies:=1, Collate:=True
  ' Lancer l'impression de la page intermédiaire
  Sheets("g9échéancier").PrintOut Copies:=1, Collate:=True
  ' Continuer l'impression du reste des pages
  Sheets("OPTIMISATION").PrintOut From:=4, Copies:=1, Collate:=True
  ' Remettre la couleur des cellules
  Rng.Interior.ColorIndex = 36
End Sub

A+
 
Re : intercaler feuille lors de l'impression

J'aimerai savoir autre chose, mes pages sont dans le désordre est que le code suivant peu fonctionner?
Range("A246:Y300").Select
Range("A246:Y300,A143:Y245").Select
Selection.PrintOut Copies:=1
Sheets("g9échéancier").Select
Range("A1:F52").Select
Selection.PrintOut Copies:=1
Sheets("OPTIMISATION").Select
Range("A301:Y358").Select
Selection.PrintOut Copies:=1
Range("A13:Y142").Select
Selection.PrintOut Copies:=1
 
Re : intercaler feuille lors de l'impression

Pour ce qui est de l'impression sa Marche😀, mais pour le changement j'ai fais une macro à part, qui ne marche pas. Est ce que tu peux me dire l'endroit ou je commet l'erreur
Dim Rng As Range
Set Rng = Range("R17,V17,N18,N19,N20,N21,N23,N31,N33") _
("R33,V78,N83,N84,N85,N86,N87,A87,A88,N88") _
("N90,R90,V90,N94,A94,A95,N95,A96,N96,N101,N107,A109,N109,N112") _
("R112,V112,N114,R114,V114,N123,R123,V123,N124,R124,V124,R130,N130,V130,A131") _
("N131,R131,V131,N134,R134,A137,N137,R137,V137,A138,N138") _
("R138,V138A139,N139,R139,V139")
Rng.Interior.ColorIndex = xlNone
Merci
 
Dernière édition:
Re : intercaler feuille lors de l'impression

Re,

Il ne faut pas fermer la parenthèse et la remplacer par une virgule, la parenthèse seulement à la fin 😉
Code:
Set Rng = Range("R17,V17,N18,N19,N20,N21,N23,N31,N33",  _
"R33,V78,N83,N84,N85,N86,N87,A87,A88,N88", _ 
Etc ....

A+
 
Re : intercaler feuille lors de l'impression

Bonjour, à chaque jour mes péripéties,😀
La technique d'impression marche mais j'ai encore un problème. En fait si j'imprime sur une imprimante normale sa marche mes feuilles sont dans l'ordre, mais l'imprimante dont je me sert est un plus spécifique. En effet, l'imprimante finale elle fait un dossier ou, elle imprime en reliant les feuilles au dossier par des agraphes. De ce fait vue que je lance plusieurs fois printout dans ma Macro j'obtiens 4 dossier alors que j'en veux qu'un. alors je veux savoir si il existe un code d'attente pour pouvoir lancer une seul impression finale voila. Merci.
 
Re : intercaler feuille lors de l'impression

Salut 😉

Malheureusement, je pense que tu vas devoir passer par PDF Creator
afin de mettre tes impressions en file d'attente

Voici tout le code
VB:
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String _
    , ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Sub ImpressionsMultiplesVers1PDF()
  Dim pdfjob As PDFCreator.clsPDFCreator
  Dim sPDFPath As String, sPDFName As String
  Dim Rng As Range, Rng1 As Range
  Dim Hndl As Long
  '
  ' Chemin de destination
  sPDFPath = ThisWorkbook.Path & Application.PathSeparator
  ' Fichier de destination
  sPDFName = "TempPDF.pdf"
  ' Créer une instance de PDFCreator
  Set pdfjob = New PDFCreator.clsPDFCreator
  ' Avec cette instance
  With pdfjob
    If .cStart("/NoProcessingAtStartup") = False Then
      MsgBox "Can't initialize PDFCreator.", vbCritical + _
                                             vbOKOnly, "PrtPDFCreator"
      Exit Sub
    End If
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutosaveDirectory") = sPDFPath
    .cOption("AutosaveFilename") = sPDFName
    .cOption("AutosaveFormat") = 0  ' 0 = PDF
    .cClearCache
  End With
  ' Définir l'imprimante PDFCreator par défaut
  Application.ActivePrinter = "PDFCreator sur Ne00:"
  ' Définir la zone des cellules dont la couleur est à changer
  Set Rng = Range("R17,V17,N18,N19,N20,N21,N23,N31,N33," _
                & "R33,V78,N83,N84,N85,N86,N87,A87,A88,N88," _
                & "N90,R90,V90,N94,A94,A95,N95,A96,N96,N101,N107,A109,N109,N112")
  ' Faire en 2 partie sinon BUG
  Set Rng1 = Range("R112,V112,N114,R114,V114,N123,R123,V123,N124,R124,V124,R130,N130,V130,A131," _
                 & "N131,R131,V131,N134,R134,A137,N137,R137,V137,A138,N138," _
                 & "R138,V138,A139,N139,R139,V139")
  ' Supprimer la couleur avant impression
  Rng.Interior.ColorIndex = xlNone
  Rng1.Interior.ColorIndex = xlNone
  ' Lancer l'impression des 3 premières pages
  Sheets("OPTIMISATION").PrintOut From:=1, To:=3, Copies:=1, Collate:=True
  ' Lancer l'impression de la page intermédiaire
  Sheets("g9échéancier").PrintOut Copies:=1, Collate:=True
  ' Continuer l'impression du reste des pages
  Sheets("OPTIMISATION").PrintOut From:=4, Copies:=1, Collate:=True
  ' Combiner tous les fichiers en SPOOL
  pdfjob.cCombineAll
  ' Remettre la couleur des cellules
  Rng.Interior.ColorIndex = 36
  Rng1.Interior.ColorIndex = 36
  ' Attendre que le Job entre dans le spool d'impression
  Do Until pdfjob.cCountOfPrintjobs = 1
    DoEvents
  Loop
  pdfjob.cPrinterStop = False
  ' Attendre que le job soit imprimé (fichier enregistré)
  Do Until pdfjob.cCountOfPrintjobs = 0
    DoEvents
  Loop
  pdfjob.cClose
  Set pdfjob = Nothing
  ' Sélectionner l'imprimante par défaut
  Application.ActivePrinter = _
  "\\sficmontargis01\RICOH Aficio MP C2500 RPCS Haut sur Ne06:"
  ' Lancer l'impression du document sur l'imprimante souhaitée
  Hndl = FindWindow("XLMAIN", Application.Caption)
  ShellExecute Hndl, "print", sPDFPath & sPDFName, "", "", 1
End Sub


A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
678
Retour