Workbook_BeforePrint fonctionne pas vraiment dans mon cas ????

Le
Gouap
Bonjour à tous,

J'ai un problème que je ne comprends pas.
Dans un classeur j'ai modifié la procédure "Private Sub
Workbook_BeforePrint(Cancel As Boolean)"
pour que lorsque je clique sur le menu ou les boutons "apperçue" ou
"imprimer" ça me sélectionne une feuille différente avant de lancer
l'impression. Cette procédure fonctionne très bien dans ces cas là.

Par contre quand j'utilise le bouton_image que j'ai mit sur une de mes
feuilles, ça ne fonctionne pas.
voici ce que j'ai écrit comme code sur cette image :

Private Sub Image1_Click()
ActiveWindow.SelectedSheets.PrintPreview
Run "Effacer"
End Sub

Quand je trace pas à pas ce qui se passe :

On s'aperçoit que la procédure "Private Sub Workbook_BeforePrint(Cancel As
Boolean)" est bien lancée, mais les lignes suivantes, normalement déplace le
focus sur une autre feuille semble être inopérant car le focus reste sur la
feuille qui contient le bouton image :



Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").Select

Avez vous une explication à me donnée ?

Merci de votre aide.
@+
Philippe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21023461
Bonjour,

| Private Sub Image1_Click()
| ActiveWindow.SelectedSheets.PrintPreview
| Run "Effacer"
| End Sub

Dans ta macro, tu utilises l'expression "ActiveWindow.SelectedSheets"
Si au moment de lancer l'impression, tu n'as que la feuille où tu
as ton image qui est sélectionnée, il est normal que la seule
feuille disponible pour aperçu avant impression soit la
feuille ACTIVE.

Le fait de sélectionner une feuille dans la procédure
Workbook_BeforePrint ne fait pas imprimer cette feuille.
il faudrait que tu lui dises expressément de le faire.

Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").PrintPreview ' ou Printout selon ce que tu désires.





"Gouap" ##
Bonjour à tous,

J'ai un problème que je ne comprends pas.
Dans un classeur j'ai modifié la procédure "Private Sub
Workbook_BeforePrint(Cancel As Boolean)"
pour que lorsque je clique sur le menu ou les boutons "apperçue" ou
"imprimer" ça me sélectionne une feuille différente avant de lancer
l'impression. Cette procédure fonctionne très bien dans ces cas là.

Par contre quand j'utilise le bouton_image que j'ai mit sur une de mes
feuilles, ça ne fonctionne pas.
voici ce que j'ai écrit comme code sur cette image :

Private Sub Image1_Click()
ActiveWindow.SelectedSheets.PrintPreview
Run "Effacer"
End Sub

Quand je trace pas à pas ce qui se passe :

On s'aperçoit que la procédure "Private Sub Workbook_BeforePrint(Cancel As
Boolean)" est bien lancée, mais les lignes suivantes, normalement déplace le
focus sur une autre feuille semble être inopérant car le focus reste sur la
feuille qui contient le bouton image :



Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").Select

Avez vous une explication à me donnée ?

Merci de votre aide.
@+
Philippe
michdenis
Le #21023581
Une petite précision :

Dans la procédure suivante, je désactiverais temporairement
les macros événementielles...
'---------------------------------------
Private Sub Workbook_BeforePrint(Cancel AsBoolean)"
Application.enableeventsúlse

'Et si tu veux pouvoir masquer ta feuille dès qu'elle est imprimée
Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").PrintPreview
Sheets("Feuille-Récap").PrintOut
Sheets("Feuille-Récap").Hidden = xlSheetHidden
Application.enableevents=True
End Sub
'---------------------------------------



"michdenis"
Bonjour,

| Private Sub Image1_Click()
| ActiveWindow.SelectedSheets.PrintPreview
| Run "Effacer"
| End Sub

Dans ta macro, tu utilises l'expression "ActiveWindow.SelectedSheets"
Si au moment de lancer l'impression, tu n'as que la feuille où tu
as ton image qui est sélectionnée, il est normal que la seule
feuille disponible pour aperçu avant impression soit la
feuille ACTIVE.

Le fait de sélectionner une feuille dans la procédure
Workbook_BeforePrint ne fait pas imprimer cette feuille.
il faudrait que tu lui dises expressément de le faire.

Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").PrintPreview ' ou Printout selon ce que tu désires.





"Gouap" ##
Bonjour à tous,

J'ai un problème que je ne comprends pas.
Dans un classeur j'ai modifié la procédure "Private Sub
Workbook_BeforePrint(Cancel As Boolean)"
pour que lorsque je clique sur le menu ou les boutons "apperçue" ou
"imprimer" ça me sélectionne une feuille différente avant de lancer
l'impression. Cette procédure fonctionne très bien dans ces cas là.

Par contre quand j'utilise le bouton_image que j'ai mit sur une de mes
feuilles, ça ne fonctionne pas.
voici ce que j'ai écrit comme code sur cette image :

Private Sub Image1_Click()
ActiveWindow.SelectedSheets.PrintPreview
Run "Effacer"
End Sub

Quand je trace pas à pas ce qui se passe :

On s'aperçoit que la procédure "Private Sub Workbook_BeforePrint(Cancel As
Boolean)" est bien lancée, mais les lignes suivantes, normalement déplace le
focus sur une autre feuille semble être inopérant car le focus reste sur la
feuille qui contient le bouton image :



Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").Select

Avez vous une explication à me donnée ?

Merci de votre aide.
@+
Philippe
Gouap
Le #21027151
Merci Michedenis pour toutes ces précitions ! J'ai modifié ma macro et
effectivement, maintenant ça va beaucoup mieux ;)


"michdenis"
Une petite précision :

Dans la procédure suivante, je désactiverais temporairement
les macros événementielles...
'---------------------------------------
Private Sub Workbook_BeforePrint(Cancel AsBoolean)"
Application.enableeventsúlse

'Et si tu veux pouvoir masquer ta feuille dès qu'elle est imprimée
Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").PrintPreview
Sheets("Feuille-Récap").PrintOut
Sheets("Feuille-Récap").Hidden = xlSheetHidden
Application.enableevents=True
End Sub
'---------------------------------------



"michdenis" discussion :

Bonjour,

| Private Sub Image1_Click()
| ActiveWindow.SelectedSheets.PrintPreview
| Run "Effacer"
| End Sub

Dans ta macro, tu utilises l'expression "ActiveWindow.SelectedSheets"
Si au moment de lancer l'impression, tu n'as que la feuille où tu
as ton image qui est sélectionnée, il est normal que la seule
feuille disponible pour aperçu avant impression soit la
feuille ACTIVE.

Le fait de sélectionner une feuille dans la procédure
Workbook_BeforePrint ne fait pas imprimer cette feuille.
il faudrait que tu lui dises expressément de le faire.

Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").PrintPreview ' ou Printout selon ce que tu
désires.





"Gouap" ##
Bonjour à tous,

J'ai un problème que je ne comprends pas.
Dans un classeur j'ai modifié la procédure "Private Sub
Workbook_BeforePrint(Cancel As Boolean)"
pour que lorsque je clique sur le menu ou les boutons "apperçue" ou
"imprimer" ça me sélectionne une feuille différente avant de lancer
l'impression. Cette procédure fonctionne très bien dans ces cas là.

Par contre quand j'utilise le bouton_image que j'ai mit sur une de mes
feuilles, ça ne fonctionne pas.
voici ce que j'ai écrit comme code sur cette image :

Private Sub Image1_Click()
ActiveWindow.SelectedSheets.PrintPreview
Run "Effacer"
End Sub

Quand je trace pas à pas ce qui se passe :

On s'aperçoit que la procédure "Private Sub Workbook_BeforePrint(Cancel As
Boolean)" est bien lancée, mais les lignes suivantes, normalement déplace
le
focus sur une autre feuille semble être inopérant car le focus reste sur
la
feuille qui contient le bouton image :



Sheets("Feuille-Récap").Visible = True
Sheets("Feuille-Récap").Select

Avez vous une explication à me donnée ?

Merci de votre aide.
@+
Philippe



Publicité
Poster une réponse
Anonyme