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

Macro Impression

12 réponses
Avatar
mattparisien59
Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt

10 réponses

1 2
Avatar
Tatanka
Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


"mattparisien59" a écrit dans le message de news:
Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt
Avatar
michdenis
Bonjour,

Adapte le nom de la feuille et de la plage de cellules à imprimer.

'--------------------------------
Sub Imprimer()

With Worksheets("NomDelaFeuille")
'Détermine la plage à imprimer
'Si c'est un graphe, détermine l'étendue
'des cellules qu'il couvre
'.PrintPreview 'Afficher avant impression si nécessaire
.PageSetup.PrintArea = .Range("G5:M52").Address
.PrintPreview 'pour tester
'.PrintOut 'Regarde dans l'aide, il y a des paramètres
'de la méthode PrintOut qui peut t'etre utiles.
.PageSetup.PrintArea = ""
End With
End Sub
'--------------------------------



"mattparisien59" a écrit dans le message de groupe de
discussion :
Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt
Avatar
Misange
mattparisien59 a écrit :

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement?


Si on te l'a demandé ... :-)
oui bien sur c'est faisable.
Sélectionne ton tableau puis lance l'enregistreur de macro pour voir à
quoi ressemblera ton code. Ensuite il te restera à le modifier (reviens
ici au besoin).
En gros ce qu'il te faudra modifier dans ta macro c'est la sélection :
une plage de donnée, un tableau nommé, un graphique, peu importe.


Misange migrateuse
http://www.excelabo.net
Avatar
michdenis
Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de discussion :

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt
Avatar
Tatanka
Ave Denis,

Bien bonne idée. Grazie.

Et deux questions :
Si un graphique est entièrement contenu dans la sélection,
Comment faire pour :
1) Que le graphique ne soit pas imprimé avec les cellules ?
2) Que seul le graphique soit imprimé ?

A+




"michdenis" a écrit dans le message de news:
Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de discussion :

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt



Avatar
michdenis
Admettons que ton graphe s'appelle "Chart 2"

Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible = False

Je suppose que s'il n'est pas visible au moment de l'impression
il ne s'imprimera pas ! Et c'est l'inverse pour l'imprimer

Par inverse il ne faut pas comprendre ceci :
False = Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible

;-))



"Tatanka" a écrit dans le message de groupe de discussion :

Ave Denis,

Bien bonne idée. Grazie.

Et deux questions :
Si un graphique est entièrement contenu dans la sélection,
Comment faire pour :
1) Que le graphique ne soit pas imprimé avec les cellules ?
2) Que seul le graphique soit imprimé ?

A+




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

Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de discussion
:

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt



Avatar
michdenis
peut-être cherchais-tu cette ligne de code qui modifie l'attribue
"printable" d'un contrôle sur une feuille de calcul :

Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.PrintObject = False




"michdenis" a écrit dans le message de groupe de discussion :
#
Admettons que ton graphe s'appelle "Chart 2"

Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible = False

Je suppose que s'il n'est pas visible au moment de l'impression
il ne s'imprimera pas ! Et c'est l'inverse pour l'imprimer

Par inverse il ne faut pas comprendre ceci :
False = Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible

;-))



"Tatanka" a écrit dans le message de groupe de discussion :

Ave Denis,

Bien bonne idée. Grazie.

Et deux questions :
Si un graphique est entièrement contenu dans la sélection,
Comment faire pour :
1) Que le graphique ne soit pas imprimé avec les cellules ?
2) Que seul le graphique soit imprimé ?

A+




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

Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de discussion
:

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt



Avatar
michdenis
2) Que seul le graphique soit imprimé ?

Si tu sélectionnes ton graphe, tu appelles la commande "Imprimer"
et dans la fenêtre, tu sélectionnes l'item "selection" ou
"Selected chart" (je suis sur une version anglaise)
Avatar
Tatanka
J'avais pensé à Visible = False mais sans utiliser les noms des graphiques.
J'ai finalement concocté cette macro qui me donne le nombre de graphques
entièrement contenus dans une sélection continue de cellules.

Sub Nombre_De_Graphiques_Dans_Une_Sélection_Continue_De_Cellules()
n = 0
Set ici = Selection
For Each gr In ActiveSheet.ChartObjects
If gr.Left + gr.Width <= ici.Left + ici.Width And _
gr.Top + gr.Height <= ici.Top + ici.Height And _
gr.Left >= ici.Left And _
gr.Top >= ici.Top Then
n = n + 1
End If
Next gr
MsgBox "Il y a " & n & " graphique(s) entièrement contenu(s) dans votre sélection."
End Sub

Et maintenant je cherche une macro avec options :
1) Imprimer seulement les cellules
2) Imprimer seulement le ou les graphiques tels qu'ils apparaissent dans la sélection.
3) Imprimer cellules et graphique(s).

Est-ce possible ?
Je poursuis mes recherches ;-)


"michdenis" a écrit dans le message de news: %
Admettons que ton graphe s'appelle "Chart 2"

Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible = False

Je suppose que s'il n'est pas visible au moment de l'impression
il ne s'imprimera pas ! Et c'est l'inverse pour l'imprimer

Par inverse il ne faut pas comprendre ceci :
False = Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible

;-))



"Tatanka" a écrit dans le message de groupe de discussion :

Ave Denis,

Bien bonne idée. Grazie.

Et deux questions :
Si un graphique est entièrement contenu dans la sélection,
Comment faire pour :
1) Que le graphique ne soit pas imprimé avec les cellules ?
2) Que seul le graphique soit imprimé ?

A+




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

Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de discussion
:

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt






Avatar
michdenis
Une tite fonction comme celle-ci :

'---------------------------------
Sub test()
'NomFeuille, Plage de cellules
NbGraph_Ds_Plage "Sheet1", Range("C4:L26"), X
If X <> 0 Then MsgBox X & " Graphe(s) dans la plage " & Range("C4:L26").Address
End Sub
'---------------------------------
Function NbGraph_Ds_Plage(Feuille As String, Rg As Range, X)
Dim Gr As ChartObject
With Worksheets(Feuille)
For Each Gr In .ChartObjects
With Gr
If Union(Rg, Range(.TopLeftCell, .BottomRightCell)).Address = Rg.Address Then
X = X + 1
End If
End With
Next
End With
End Function
'---------------------------------








"Tatanka" a écrit dans le message de groupe de discussion :

J'avais pensé à Visible = False mais sans utiliser les noms des graphiques.
J'ai finalement concocté cette macro qui me donne le nombre de graphques
entièrement contenus dans une sélection continue de cellules.

Sub Nombre_De_Graphiques_Dans_Une_Sélection_Continue_De_Cellules()
n = 0
Set ici = Selection
For Each gr In ActiveSheet.ChartObjects
If gr.Left + gr.Width <= ici.Left + ici.Width And _
gr.Top + gr.Height <= ici.Top + ici.Height And _
gr.Left >= ici.Left And _
gr.Top >= ici.Top Then
n = n + 1
End If
Next gr
MsgBox "Il y a " & n & " graphique(s) entièrement contenu(s) dans votre sélection."
End Sub

Et maintenant je cherche une macro avec options :
1) Imprimer seulement les cellules
2) Imprimer seulement le ou les graphiques tels qu'ils apparaissent dans la sélection.
3) Imprimer cellules et graphique(s).

Est-ce possible ?
Je poursuis mes recherches ;-)


"michdenis" a écrit dans le message de news:
%
Admettons que ton graphe s'appelle "Chart 2"

Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible = False

Je suppose que s'il n'est pas visible au moment de l'impression
il ne s'imprimera pas ! Et c'est l'inverse pour l'imprimer

Par inverse il ne faut pas comprendre ceci :
False = Worksheets("Feuil1").Shapes("Chart 2").OLEFormat.Object.Visible

;-))



"Tatanka" a écrit dans le message de groupe de discussion
:

Ave Denis,

Bien bonne idée. Grazie.

Et deux questions :
Si un graphique est entièrement contenu dans la sélection,
Comment faire pour :
1) Que le graphique ne soit pas imprimé avec les cellules ?
2) Que seul le graphique soit imprimé ?

A+




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

Bonjour Tatanka,

Si tu ne désires pas que la feuille risque d'enregistrer
la plage imprimer comme "Set up" pour les prochaines
impressions de la feuille, il est souhaitable que tu ajoutes
à ta procédure :
ActiveSheet.PageSetup.PrintArea = ""

N.B- Pour chacune des feuilles d'un classeur, on peut définir
des paramètres d'impression spécifiques. Lorsque ceux-ci sont définis,
on enregistre le classeur et lors d'une future impression de
la feuille, la feuille s'imprimera avec ces mêmes paramètres
d'impression déjà définis.




"Tatanka" a écrit dans le message de groupe de
discussion
:

Bonjour,

Cette macro peut-elle te dépanner ?
Sélectionne une plage continue de cellules et appelle cette macro :

Sub Imprime_Une_Sélection_Continue_De_Cellules()
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Serge


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

Bonjour,

Actuellement en stage (niveau DUT), on m'a demandé de faire une macro qui
permet d'imprimer une certaine zone. exemple sur une feuille excel j'ai
plusieurs tableaux mais je souhaite en imprimer qu'un seul. Je me demande si
cette macro est faisable ou s'il est plus simple de faire autrement? J'ai un
même exemple à faire avec un graphique qui est sur la même qu'un tableau mais je
souhaite imprimer seulement le graphique.
Merci de votre aide très précieuse.
Matt






1 2