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

VB impression feuille masquée et inactive

3 réponses
Avatar
Woody
Bonjour tout le monde,

J'ai créé une mini application formulaire.
Le classeur contient 4 feuilles : La première s'appelle "formulaire" avec
les listes déroulantes et zones de saisie qui seront remplies par les
utilisateurs.
La deuxième feuille s'appelle "impression". Il s'agit en fait du formulaire
dont je récupère les données mais avec une autre mise en page (question de
norme...)
Les deux autres feuilles alimentent les listes. Il y en a beaucoup... trop
long et trop compliqué à expliquer...

La seule feuille visible à l'écran sera bien sûr le formulaire à remplir,
les autres seront masquées. Mais je souhaite que la seule feuille que l'on
puisse imprimer soit "impression", que l'on clique sur le bouton ou par
fichier/imprimer.
Est-il possible d'imprimer une feuille masquée et inactive, sinon comment
faire ?

Si je lui dis ça :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Impression").PageSetup.PrintArea = "$A$1:$H$49"
Worksheets("Impression").PrintOut Copies:=1, Collate:=True
Cancel = False
End Sub

il imprime bien d'abord la feuille voulue, mais il imprime ensuite le
formulaire, c'est à dire la feuille active. Si j'ajoute
Worksheets("Impression").Activate avant tout ça, il imprime 2 fois la
feuille "impression"... et je ne veux pas activer la feuille, elle doit
rester masquée...
Je débute en VB... Depuis le temps que je devais m'y mettre !!

Un grand merci d'avance pour vos lumières.

Cordialement.

Woody.

3 réponses

Avatar
Philippe.R
Bonsoir,

Pour résoudre un problème similaire (imprimer une feuille masquée),
j'utilise ceci, dans un module ordinaire, la macro étant appelée avec un
bouton

Application.ScreenUpdating = False
Sheets("Formulaire").Visible = True
Sheets("Formulaire").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets(1).Activate
Sheets("Formulaire").Visible = False
Application.ScreenUpdating = True

dont tu peux peut être t'inspirer
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Woody" a écrit dans le message de
news:
Bonjour tout le monde,

J'ai créé une mini application formulaire.
Le classeur contient 4 feuilles : La première s'appelle "formulaire" avec
les listes déroulantes et zones de saisie qui seront remplies par les
utilisateurs.
La deuxième feuille s'appelle "impression". Il s'agit en fait du
formulaire dont je récupère les données mais avec une autre mise en page
(question de norme...)
Les deux autres feuilles alimentent les listes. Il y en a beaucoup... trop
long et trop compliqué à expliquer...

La seule feuille visible à l'écran sera bien sûr le formulaire à remplir,
les autres seront masquées. Mais je souhaite que la seule feuille que l'on
puisse imprimer soit "impression", que l'on clique sur le bouton ou par
fichier/imprimer.
Est-il possible d'imprimer une feuille masquée et inactive, sinon comment
faire ?

Si je lui dis ça :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Impression").PageSetup.PrintArea = "$A$1:$H$49"
Worksheets("Impression").PrintOut Copies:=1, Collate:=True
Cancel = False
End Sub

il imprime bien d'abord la feuille voulue, mais il imprime ensuite le
formulaire, c'est à dire la feuille active. Si j'ajoute
Worksheets("Impression").Activate avant tout ça, il imprime 2 fois la
feuille "impression"... et je ne veux pas activer la feuille, elle doit
rester masquée...
Je débute en VB... Depuis le temps que je devais m'y mettre !!

Un grand merci d'avance pour vos lumières.

Cordialement.

Woody.





Avatar
Woody
Bonsoir Philippe,

Merci pour ta réponse. Je teste demain au boulot et je te tiens au courant.

Merci encore.

Cordialement.

Woody.

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%23BLG%23%
Bonsoir,

Pour résoudre un problème similaire (imprimer une feuille masquée),
j'utilise ceci, dans un module ordinaire, la macro étant appelée avec un
bouton

Application.ScreenUpdating = False
Sheets("Formulaire").Visible = True
Sheets("Formulaire").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets(1).Activate
Sheets("Formulaire").Visible = False
Application.ScreenUpdating = True

dont tu peux peut être t'inspirer
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Woody" a écrit dans le message de
news:
Bonjour tout le monde,

J'ai créé une mini application formulaire.
Le classeur contient 4 feuilles : La première s'appelle "formulaire" avec
les listes déroulantes et zones de saisie qui seront remplies par les
utilisateurs.
La deuxième feuille s'appelle "impression". Il s'agit en fait du
formulaire dont je récupère les données mais avec une autre mise en page
(question de norme...)
Les deux autres feuilles alimentent les listes. Il y en a beaucoup...
trop long et trop compliqué à expliquer...

La seule feuille visible à l'écran sera bien sûr le formulaire à remplir,
les autres seront masquées. Mais je souhaite que la seule feuille que
l'on puisse imprimer soit "impression", que l'on clique sur le bouton ou
par fichier/imprimer.
Est-il possible d'imprimer une feuille masquée et inactive, sinon comment
faire ?

Si je lui dis ça :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Impression").PageSetup.PrintArea = "$A$1:$H$49"
Worksheets("Impression").PrintOut Copies:=1, Collate:=True
Cancel = False
End Sub

il imprime bien d'abord la feuille voulue, mais il imprime ensuite le
formulaire, c'est à dire la feuille active. Si j'ajoute
Worksheets("Impression").Activate avant tout ça, il imprime 2 fois la
feuille "impression"... et je ne veux pas activer la feuille, elle doit
rester masquée...
Je débute en VB... Depuis le temps que je devais m'y mettre !!

Un grand merci d'avance pour vos lumières.

Cordialement.

Woody.








Avatar
Woody
Bonjour,

Désolée pour ce retard. J'ai testé la macro en l'adaptant, ça marche bien.
Dommage qu'on ne puisse pas éviter d'activer la feuille...

Merci encore. Bon dimanche.

Cordialement.

Woody.

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

Bonsoir Philippe,

Merci pour ta réponse. Je teste demain au boulot et je te tiens au
courant.

Merci encore.

Cordialement.

Woody.

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%23BLG%23%
Bonsoir,

Pour résoudre un problème similaire (imprimer une feuille masquée),
j'utilise ceci, dans un module ordinaire, la macro étant appelée avec un
bouton

Application.ScreenUpdating = False
Sheets("Formulaire").Visible = True
Sheets("Formulaire").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets(1).Activate
Sheets("Formulaire").Visible = False
Application.ScreenUpdating = True

dont tu peux peut être t'inspirer
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Woody" a écrit dans le message de
news:
Bonjour tout le monde,

J'ai créé une mini application formulaire.
Le classeur contient 4 feuilles : La première s'appelle "formulaire"
avec les listes déroulantes et zones de saisie qui seront remplies par
les utilisateurs.
La deuxième feuille s'appelle "impression". Il s'agit en fait du
formulaire dont je récupère les données mais avec une autre mise en page
(question de norme...)
Les deux autres feuilles alimentent les listes. Il y en a beaucoup...
trop long et trop compliqué à expliquer...

La seule feuille visible à l'écran sera bien sûr le formulaire à
remplir, les autres seront masquées. Mais je souhaite que la seule
feuille que l'on puisse imprimer soit "impression", que l'on clique sur
le bouton ou par fichier/imprimer.
Est-il possible d'imprimer une feuille masquée et inactive, sinon
comment faire ?

Si je lui dis ça :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Impression").PageSetup.PrintArea = "$A$1:$H$49"
Worksheets("Impression").PrintOut Copies:=1, Collate:=True
Cancel = False
End Sub

il imprime bien d'abord la feuille voulue, mais il imprime ensuite le
formulaire, c'est à dire la feuille active. Si j'ajoute
Worksheets("Impression").Activate avant tout ça, il imprime 2 fois la
feuille "impression"... et je ne veux pas activer la feuille, elle doit
rester masquée...
Je débute en VB... Depuis le temps que je devais m'y mettre !!

Un grand merci d'avance pour vos lumières.

Cordialement.

Woody.