Code pour impression

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 !

Julien69

XLDnaute Nouveau
Bonjour a tous,

Voila j'ai encore besoin de vos services, j'essaie deseperement de trouver un code vba pour pouvoir imprimer dans un meme classeur plusieur onglets.
Dans ce classeur, j'ai un onglet acceuil ou j'ai plusieurs boutons qui me permette d'afficher la feuille (ou l'onglet) désiré.
Une fois que j'ai selectionner dans mon acceuil les onglets que je veux, je souhaiterai mettre dans ce meme onglets un bouton qui me permettrait d'imprimer les pages actives (a part l'onglet acceuil), de plus je souhaiterai ne pas imprimer les couleurs des cases.
J'ai essayer ce code mais qui ne fonctionne pas

Private Sub CommandButton14_Click()
' Masquage des feuilles qui n'apparaissent pas dans le rapport
Sheets("etalon").Visible = False
Sheets("Données").Visible = False
Sheets("Accueil").Visible = False
Sheets("incert").Visible = False

ActiveWorkbook.PrintPreview
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
End Sub

C'est un mix de code que j'ai essayer de faire mais ca marche pas, doit avoir un problème quelque part.
Si quelqu'un peux m'aider, ca serait vriament sympatique

Merci 🙂
 
Re : Code pour impression

Bonsoir ,
une autre solution :
Faire une boucle afin de sélectionner les onglets désirés
Dans mon exemple toutes les feuilles à imprimer commençaient par Questionnaire ou par Recto

mais

Si tu me donnes le nom des feuilles à imprimer ou celle à ne pas imprimer , je l'adapte pour toi

Code:
'Boucle d'impression
For Each onglet In ThisWorkbook.Worksheets
  If InStr(1, onglet.Name, "Questionnaire ") > 0 Or InStr(1, onglet.Name, "Recto ") > 0 Then
  Sheets(onglet.Name).Select Replace:=False
End If
Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
 
Re : Code pour impression

En faite je ne sais pas a l'avance combien d'onglet je vais avoir à imprimer, cela va dépendre du nombre d'onglet que l'on activera au début suivant. C'est très aléatoire, il faudrait que je puisse imprimer les onglets actif.
Merci tout de même
 
Re : Code pour impression

Merci pour ton code,

J'ai essayé avec celui ci en le modifiant ainsi:
Sub CommandButton14_Click()
Sheets("accueil").Visible = False
'Impression
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
End Sub

Donc en appuyant sur le bouton, ca me cache bien la feuille acceuil, mais par contre ca m'imprime que la première feuille, alors que j'ai d'autre feuille derrière.

Mon fichier un onglet accueil, ou la je selectionne grace à des boutons le nombre de feuille que je veux, peut etre une comme vingt. (total d'une vingtaine de feuille en tout).
Si tu as une autre idée je suis preneur.
Merci d'avance
 
Re : Code pour impression

Julien ,

Je pensais qu'en tu disais sélectionner , c'était par clic sur les onglets à imprimer en restant appuyer sur la touche CTRL, la à priori ce n'est pas le cas.
Donc dans ton menu la sélection consiste en quoi ? des cases à cochées , des cellules validées , car avec un balayage de ce menu l'on pourrait alors ce servir du premier code légérement modifié , mais il faudrait que je connaisse la structure du menu.
car la liste des onglets doit forcément être connue quelque part, la méthode de cache en visibilité ne sert pas à grand chose si l'on connait cette liste.

Si tu peux mettre un exemple de ce menu, bien sur sans données confidentielle, je pourrais mieux comprendre et ensuite d'aiguiller pour incorporer la solution dans le vrai menu
 
Re : Code pour impression

J'imagine que c'est complexe

Je te joins un fichier Exemple que j'ai retravailler pour confidentialité

1er Onglet: accueil, la ou on rentre différente info et la ou on selectionne les feuilles (bouton page 3 , 4 etc)
2ème onglet, page 1 et 2 est toujours visible
Tu verra que sur les pages que l'on peux selectionner, se trouve un bouton imprimer qui fonctionne et qui en plus est configurer pour ne pas imprimer les couleurs des cases.
Pour plus de rapidité,j'aimerais remplacer ces boutons par un bouton général placer sur l'onglet accueil et qui me permette d'imprimer les onglets seléctionner auparavant
page 1-2, 3, 4; etc.... par contre je ne veux pas imprimer l'accueil.
J'espeère que je suis claire
Te remercie en tout cas du temps que tu passe a m'aider
 

Pièces jointes

Re : Code pour impression

Julien ,

Si l'on imprime que les onglets visibles cela devrait fonctionner si j'ai tout bien compris.

J'ai également cru comprendre que l'on imprime pas l' accueil.

Voici le code que cela peut donner

Bon , un flip flop de rajouté pour la sélection des feuilles

Code:
Option Explicit
Sub Test()
Dim Onglet As Worksheet
Sheets("accueil").Visible = False

'Boucle d'impression
For Each Onglet In ThisWorkbook.Worksheets
  If Onglet.Visible Then Sheets(Onglet.Name).Select Replace:=False
Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
Sheets("Accueil").Select
Sheets("accueil").Visible = True
End Sub

Voir fichier joint, reste ensuite à masquer ou pas les feuilles....
 

Pièces jointes

Re : Code pour impression

J'ai trouver ce code sur le net qui me plait bien, regarde le fichier exemple bouton impression.
Quand tu click dessus une boite de dialogue permet de choisir les feuilles que tu veux imprimer.
Par contre es que tu aurait une idée pour imprimer les pages sans les couleurs de cases (voir page 3)
J'essai de bidouiller mais rien y fait, comme je vois que tu as l'air de bien maniper Excel si des fois tu as une idée.

En te remerciant
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
819
Réponses
3
Affichages
665
Réponses
3
Affichages
673
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour