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

[VBA] imprimer plusieurs feuilles

2 réponses
Avatar
Microsoft VBA Excel
Bonjour à tous,

voici un petit casse tête pour les amoureux du VBA Excel :

je génère plusieurs feuilles par l'intermédiaire d'un userform. Je propose
sur ce formulaire d'imprimer les feuilles après génération. Il y a 4
feuilles.

lorsque l'utilisateur coche une case "imprimer" concernant une feuille, la
valeur "vrai" est stockée dans une cellule de mon classeur. Il y a donc 4
cellules dans lesquelles j'aurai au final soit faux, soit vrai.

Ma question :
quel code dois-je utiliser pour demander à Excel d'imprimer les bonnes
feuilles à imprimer ? (à savoir les feuilles dont la cellule "témoin"
contient "vrai" ?

J'ai essayé de sélectionner les feuilles dont la cellule témoin est à
"vrai", mais ma sélection ne fonctionne pas...

Voici mon ébauche de code :

'd'abord je teste s'il y a vrai ou faux dans la cellule "témoin"
> If Sheets("config").Range("B15").Value = True Then
> ImpFeuil1 = "nom de la feuille 1"
> End if

je fais pareil pour les 4 feuilles.

Au final, j'avais l'idée d'obtenir 4 variables avec les noms ou non des
feuilles à imprimer :
ImpFeuil1 contient le nom de la feuille 1 (car elle a été demandée)
ImpFeuil2 contient le nom de la feuille 2 (car elle a été demandée)
ImpFeuil3 contient "" (car elle n'a pas été demandée)
ImpFeuil4 contient "" (car elle n'a pas été demandée)

Puis j'essaye de sélectionner les feuilles dont j'ai récupéré le nom :
> Sheets(Array(ImpFeuil1, ImpFeuil2, ImpFeuil3, ImpFeuil4)).Select

Mais c'est là que ça plante, car Excel n'aime pas ImpFeuil3 et Impfeuil4 qui
contiennent "" et me dit que ces deux feuilles n'existent pas...

Puis j'ai comme idée d'imprimer les feuilles sélectionnées :
> ActiveWindow.SelectedSheets.PrintOut

Ce ne sont que des idées, apparemment pas très bonnes. Est-ce que quelqu'un
peut me donner un coup de main SVP ?

Merci d'avance pour vos précieux conseils.

2 réponses

Avatar
ru-th
Salut

pas testé
en supposant de B15 à B18 pour les true ou false et de c15 à c18 pour les
noms de feuilles à imprimer
for =i  to 18
If Sheets("config").Range("B"& i).Value = True then
sheets(Sheets("config").Range("c"& i).text).printout
Sheets("config").Range("B"& i).Value = false
endif
next i

a+
rural thierry

"Microsoft VBA Excel" a écrit dans le message de
news:%23B%
Bonjour à tous,

voici un petit casse tête pour les amoureux du VBA Excel :

je génère plusieurs feuilles par l'intermédiaire d'un userform. Je propose
sur ce formulaire d'imprimer les feuilles après génération. Il y a 4
feuilles.

lorsque l'utilisateur coche une case "imprimer" concernant une feuille, la
valeur "vrai" est stockée dans une cellule de mon classeur. Il y a donc 4
cellules dans lesquelles j'aurai au final soit faux, soit vrai.

Ma question :
quel code dois-je utiliser pour demander à Excel d'imprimer les bonnes
feuilles à imprimer ? (à savoir les feuilles dont la cellule "témoin"
contient "vrai" ?

J'ai essayé de sélectionner les feuilles dont la cellule témoin est à
"vrai", mais ma sélection ne fonctionne pas...

Voici mon ébauche de code :

'd'abord je teste s'il y a vrai ou faux dans la cellule "témoin"
If Sheets("config").Range("B15").Value = True Then
ImpFeuil1 = "nom de la feuille 1"
End if


je fais pareil pour les 4 feuilles.

Au final, j'avais l'idée d'obtenir 4 variables avec les noms ou non des
feuilles à imprimer :
ImpFeuil1 contient le nom de la feuille 1 (car elle a été demandée)
ImpFeuil2 contient le nom de la feuille 2 (car elle a été demandée)
ImpFeuil3 contient "" (car elle n'a pas été demandée)
ImpFeuil4 contient "" (car elle n'a pas été demandée)

Puis j'essaye de sélectionner les feuilles dont j'ai récupéré le nom :
Sheets(Array(ImpFeuil1, ImpFeuil2, ImpFeuil3, ImpFeuil4)).Select


Mais c'est là que ça plante, car Excel n'aime pas ImpFeuil3 et Impfeuil4
qui

contiennent "" et me dit que ces deux feuilles n'existent pas...

Puis j'ai comme idée d'imprimer les feuilles sélectionnées :
ActiveWindow.SelectedSheets.PrintOut


Ce ne sont que des idées, apparemment pas très bonnes. Est-ce que
quelqu'un

peut me donner un coup de main SVP ?

Merci d'avance pour vos précieux conseils.






Avatar
Microsoft VBA Excel
Tu me conseilles d'imprimer les feuilles une par une, et ce n'est pas bête
du tout ! Je me bornais à essayer d'imprimer toutes les feuilles d'un
coup...

Je vais tester ta solution,

merci !!!
"ru-th" a écrit dans le message de news:
%
Salut

pas testé
en supposant de B15 à B18 pour les true ou false et de c15 à c18 pour les
noms de feuilles à imprimer
for =i  to 18
If Sheets("config").Range("B"& i).Value = True then
sheets(Sheets("config").Range("c"& i).text).printout
Sheets("config").Range("B"& i).Value = false
endif
next i

a+
rural thierry

"Microsoft VBA Excel" a écrit dans le message de
news:%23B%
Bonjour à tous,

voici un petit casse tête pour les amoureux du VBA Excel :

je génère plusieurs feuilles par l'intermédiaire d'un userform. Je
propose
sur ce formulaire d'imprimer les feuilles après génération. Il y a 4
feuilles.

lorsque l'utilisateur coche une case "imprimer" concernant une feuille,
la
valeur "vrai" est stockée dans une cellule de mon classeur. Il y a donc 4
cellules dans lesquelles j'aurai au final soit faux, soit vrai.

Ma question :
quel code dois-je utiliser pour demander à Excel d'imprimer les bonnes
feuilles à imprimer ? (à savoir les feuilles dont la cellule "témoin"
contient "vrai" ?

J'ai essayé de sélectionner les feuilles dont la cellule témoin est à
"vrai", mais ma sélection ne fonctionne pas...

Voici mon ébauche de code :

'd'abord je teste s'il y a vrai ou faux dans la cellule "témoin"
If Sheets("config").Range("B15").Value = True Then
ImpFeuil1 = "nom de la feuille 1"
End if


je fais pareil pour les 4 feuilles.

Au final, j'avais l'idée d'obtenir 4 variables avec les noms ou non des
feuilles à imprimer :
ImpFeuil1 contient le nom de la feuille 1 (car elle a été demandée)
ImpFeuil2 contient le nom de la feuille 2 (car elle a été demandée)
ImpFeuil3 contient "" (car elle n'a pas été demandée)
ImpFeuil4 contient "" (car elle n'a pas été demandée)

Puis j'essaye de sélectionner les feuilles dont j'ai récupéré le nom :
Sheets(Array(ImpFeuil1, ImpFeuil2, ImpFeuil3, ImpFeuil4)).Select


Mais c'est là que ça plante, car Excel n'aime pas ImpFeuil3 et Impfeuil4
qui

contiennent "" et me dit que ces deux feuilles n'existent pas...

Puis j'ai comme idée d'imprimer les feuilles sélectionnées :
ActiveWindow.SelectedSheets.PrintOut


Ce ne sont que des idées, apparemment pas très bonnes. Est-ce que
quelqu'un

peut me donner un coup de main SVP ?

Merci d'avance pour vos précieux conseils.