XL 2019 Imprimer une feuille via userform

Kevin38

XLDnaute Nouveau
Bonjour à tous,

Je sollicite votre aide pour ma commande ci-dessous; j'ai mon "userform" et souhaite imprimer une feuille de mon classeur. Mais mon soucis est que quand je click sur le bouton imprimer, ma feuille à imprimer s'affiche bien en arrière plan (Aperçu avant impression) et le "userform" reste active en premier plan dont je ne vois pas ma feuille et je ne parviens pas à fermer le "userform" active.

La macro pour imprimer

VB:
Sub BOUTON_FrmClient_Impression()
Sheets("CLIENT").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False, Preview:=True
End Sub


et le bouton Imprimer qui se trouve dans le "userform"

VB:
Private Sub CommandButton1_Click()
Call BOUTON_FrmClient_Impression
Sheets("CLIENT").Activate
Unload userform
End Sub

Par la même occasion je souhaite vous demander est-il possible d'ajouter un "Info-bulle..." à un "CommandButton1_Click" qui se trouve dans un "userform"


merci
@+
 
Dernière édition:
Solution
Chez moi ceci marche :
VB:
Private Sub CommandButton1_Click()
   Me.Hide
   Sheets("CLIENT").Activate
   Application.DisplayFullScreen = False
   Call BOUTON_FrmClient_Impression
   Sheets("ACCUEIL").Activate
   Application.DisplayFullScreen = True
   Me.Show
   End Sub
Remarque: j'ai mis la propriété ShowModal du UserForm1 à False.

Kevin38

XLDnaute Nouveau
C'est quoi le problème ? Les commandes d'impressions effectives ne sont pas accessibles ?
Le Application.DisplayFullScreen = False ne serait-il pas fait trop tard, après que la commande PrintOut ait été lancée ? Personnellement je préfère PrintPreview, qui permet aussi de lancer l'impression effective (si les commandes sont accessibles).
Re,

Oui étant donné que le ruban reste masqué les commandes d'impressions ne sont pas accessibles.
Pour le "Application.DisplayFullScreen" j'en ai 2 pour l'ouverture et quand je quite l'aperçu avant impression qu'est-ce je peu faire je garde les 2 et
Application.DisplayFullScreen= False
place auprès le Me.Hide et avant la macro


VB:
Sub BOUTON_FrmClient_Impression()
FrmClient.Hide
Sheets("CLIENT").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False, PrintPreview:=True
FrmClient.Show
End Sub

Merci
@+
 
Dernière édition:

Kevin38

XLDnaute Nouveau
Pourquoi n'y a-t-il pas Application.DisplayFullScreen = False au début de cette procédure ?
Bonsoir,

J'ai testé un peu de tout mais noway je n'ai toujours pas obtenu ce que je cherche.

La feuille "CLIENT" est là, masquer automatiquement le ruban enregistrer et fermer ainsi quand vous re-ouvrez le fichier et que vous voulez "IMPRIMER" càd un "PrintPreview=aperçu avant impression" les commandes d'impressions effectives ne sont plus accessibles dans l'aperçu avant impression et quand vous activez 'afficher les onglets et commandes' et que vous "FERMER" le theme du classeur change.

Pourriez vous le tester avec ruban masquer à l'ouverture, ruban afficher à l'aperçu avant impression et une fois "FERMER" et quand on revient sur la page Accueil Ruban de nouveau masquer.

Merci
@+
 

Pièces jointes

  • Test_PrintPreview.xlsm
    30.2 KB · Affichages: 5

Kevin38

XLDnaute Nouveau
Chez moi ceci marche :
VB:
Private Sub CommandButton1_Click()
   Me.Hide
   Sheets("CLIENT").Activate
   Application.DisplayFullScreen = False
   Call BOUTON_FrmClient_Impression
   Sheets("ACCUEIL").Activate
   Application.DisplayFullScreen = True
   Me.Show
   End Sub
Remarque: j'ai mis la propriété ShowModal du UserForm1 à False.
Nickel! Fonctionne parfaitement.
Merci Dranreb

@+
Kevin
 

Kevin38

XLDnaute Nouveau
Chez moi ceci marche :
VB:
Private Sub CommandButton1_Click()
   Me.Hide
   Sheets("CLIENT").Activate
   Application.DisplayFullScreen = False
   Call BOUTON_FrmClient_Impression
   Sheets("ACCUEIL").Activate
   Application.DisplayFullScreen = True
   Me.Show
   End Sub
Remarque: j'ai mis la propriété ShowModal du UserForm1 à False.

Bonjour Dranreb,

A titre d'information, "le code ci-dessous fonctionne parfaitement" mais un petit soucis (imaginons pour une raison quelconque Excel est déjà en ruban masqué et que j'ouvre le classeur) là le code ne réponds plus peut-être une idée ?

VB:
Private Sub CommandButton1_Click()
   Me.Hide
   Sheets("CLIENT").Activate
   Application.DisplayFullScreen = False
   ActiveWindow.DisplayHeadings = True
   ActiveWindow.DisplayWorkbookTabs = True
   Call BOUTON_FrmClient_Impression
   Sheets("ACCUEIL").Activate
   Application.DisplayFullScreen = True
   Me.Show
   End Sub

Merci
@+
 

Kevin38

XLDnaute Nouveau
Non. Je ne vois pas. Chez moi ça marche dans tous les cas
Remarque: les Sheets(…).Activate ne servent à rien.
Sheets("CLIENT").PrintPreview marche même si ce n'est pas la feuille active.
Merci,

Même si vous ouvrez Excel, fermer le classeur vide et masqué le ruban et fermer n'importe quel classeur s'ouvrira avec un ruban masqué et c'est là le problème arrive. ;)
 

Kevin38

XLDnaute Nouveau
Joignez votre classeur. Là je ne comprends rien à vos problèmes.
Peut être devriez vous alouter des procédures dans le module ThisWorkbook
Et surtout, important, mettre ShowModal du UserForm à False pour que les Show ne bloquent jamais l'exécution.
Re,

Pour le "userform" sans soucis et ShowModal à False. Mais comme j'utilise aussi pour imprimer d'autre feuille sinon ça va.

Merci et bon week-end
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson