Macro Impression

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Tatanka
Le #21693581
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"
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
michdenis
Le #21693571
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" 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
Misange
Le #21693811
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
michdenis
Le #21693981
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"
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"
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
Tatanka
Le #21694171
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"
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"
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"
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



michdenis
Le #21694351
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"
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"
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" :

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"
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



michdenis
Le #21695131
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" #
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"
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"
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" :

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"
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



michdenis
Le #21696051
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)
Tatanka
Le #21697241
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"
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"
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"
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" :

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"
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






michdenis
Le #21699931
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"
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" %
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" :

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"
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" 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"
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






Publicité
Poster une réponse
Anonyme