VB impression feuille masquée et inactive

Le
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.
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
Philippe.R
Le #4984091
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" 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.





Woody
Le #4983961
Bonsoir Philippe,

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

Merci encore.

Cordialement.

Woody.

"Philippe.R" %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" 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.








Woody
Le #5002301
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"
Bonsoir Philippe,

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

Merci encore.

Cordialement.

Woody.

"Philippe.R" %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" 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.












Publicité
Poster une réponse
Anonyme