Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Workbook_BeforePrint fonctionne pas vraiment dans mon cas ????

3 réponses
Avatar
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

3 réponses

Avatar
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" a écrit dans le message de groupe de discussion :
##
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
Avatar
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" a écrit dans le message de groupe de 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" a écrit dans le message de groupe de discussion :
##
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
Avatar
Gouap
Merci Michedenis pour toutes ces précitions ! J'ai modifié ma macro et
effectivement, maintenant ça va beaucoup mieux ;)


"michdenis" a écrit dans le message de news:

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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de discussion :
##
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