Je sais qu'il est possible de lancer une macro avant l'impression
(Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de
suite après cette impression?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
garnote
Salut HD,
Et si la macro était lancée pendant l'impression, serait convenable ?
Sub Imprime() ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Macro End Sub
Sub Macro() For i = 1 To 10 s = s + Cells(i, 1) Next i MsgBox s End Sub
Serge
"HD" a écrit dans le message de news: OzMpdht#
Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression (Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de suite après cette impression?
Merci d'avance pour votre aide. -- @+ HD
Salut HD,
Et si la macro était lancée pendant l'impression,
serait convenable ?
Sub Imprime()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Macro
End Sub
Sub Macro()
For i = 1 To 10
s = s + Cells(i, 1)
Next i
MsgBox s
End Sub
Serge
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
OzMpdht#DHA.684@tk2msftngp13.phx.gbl...
Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression
(Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de
suite après cette impression?
Et si la macro était lancée pendant l'impression, serait convenable ?
Sub Imprime() ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Macro End Sub
Sub Macro() For i = 1 To 10 s = s + Cells(i, 1) Next i MsgBox s End Sub
Serge
"HD" a écrit dans le message de news: OzMpdht#
Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression (Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de suite après cette impression?
Merci d'avance pour votre aide. -- @+ HD
HD
Et si la macro était lancée pendant l'impression, serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je veux que ces cellules deviennent incolores puis quelles se recolorisent après l'impression. Il me faudrait donc un truc du style:
sub Workbook_beforeprint enlève_couleur end sub
sub Workbook_afterprint recolorise end sub
-- @+ HD
Et si la macro était lancée pendant l'impression,
serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je veux
que ces cellules deviennent incolores puis quelles se recolorisent après
l'impression. Il me faudrait donc un truc du style:
Et si la macro était lancée pendant l'impression, serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je veux que ces cellules deviennent incolores puis quelles se recolorisent après l'impression. Il me faudrait donc un truc du style:
sub Workbook_beforeprint enlève_couleur end sub
sub Workbook_afterprint recolorise end sub
-- @+ HD
garnote
Salut HD,
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro :
Sub Imprime() Application.ScreenUpdating = False Application.DisplayAlerts = False n = ActiveSheet.Name Sheets(n).Copy Before:=Sheets(1) Set ici = Selection For Each c In ici If c.Interior.ColorIndex = 6 Then c.Interior.ColorIndex = xlNone Next ActiveWindow.ActiveSheet.PrintOut Copies:=1, Collate:=True ActiveSheet.Delete Sheets(n).Activate Application.DisplayAlerts = False End Sub
Serge
"HD" a écrit dans le message de news: u6tmJBv#
Et si la macro était lancée pendant l'impression, serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je veux
que ces cellules deviennent incolores puis quelles se recolorisent après l'impression. Il me faudrait donc un truc du style:
sub Workbook_beforeprint enlève_couleur end sub
sub Workbook_afterprint recolorise end sub
-- @+ HD
Salut HD,
Tu pourrais tester cette approche de brousse
avant de l'adopter !
S'il n'y a pas des millions de cellules jaunes,
à ne pas imprimer, ça devrait se faire en un temps raisonnable.
Tu commences par sélectionner
la plage rectangulaire contenant tes cellules
jaunes (pas besoin de sélectionner chaque
cellule jaune) et tu appelles cette macro :
Sub Imprime()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
n = ActiveSheet.Name
Sheets(n).Copy Before:=Sheets(1)
Set ici = Selection
For Each c In ici
If c.Interior.ColorIndex = 6 Then c.Interior.ColorIndex = xlNone
Next
ActiveWindow.ActiveSheet.PrintOut Copies:=1, Collate:=True
ActiveSheet.Delete
Sheets(n).Activate
Application.DisplayAlerts = False
End Sub
Serge
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
u6tmJBv#DHA.2212@TK2MSFTNGP10.phx.gbl...
Et si la macro était lancée pendant l'impression,
serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je
veux
que ces cellules deviennent incolores puis quelles se recolorisent après
l'impression. Il me faudrait donc un truc du style:
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro :
Sub Imprime() Application.ScreenUpdating = False Application.DisplayAlerts = False n = ActiveSheet.Name Sheets(n).Copy Before:=Sheets(1) Set ici = Selection For Each c In ici If c.Interior.ColorIndex = 6 Then c.Interior.ColorIndex = xlNone Next ActiveWindow.ActiveSheet.PrintOut Copies:=1, Collate:=True ActiveSheet.Delete Sheets(n).Activate Application.DisplayAlerts = False End Sub
Serge
"HD" a écrit dans le message de news: u6tmJBv#
Et si la macro était lancée pendant l'impression, serait convenable ?
Non... En fait, j'ai certaines cellules jaunes. Lors de l'impression je veux
que ces cellules deviennent incolores puis quelles se recolorisent après l'impression. Il me faudrait donc un truc du style:
sub Workbook_beforeprint enlève_couleur end sub
sub Workbook_afterprint recolorise end sub
-- @+ HD
michdenis
Bonjour HD,
As-tu essayé ceci :
'--------------------------------- Private Sub Workbook_BeforePrint(Cancel As Boolean)
Ta macro Impression Autre Macro
Cancel = True
End Sub '---------------------------------
Salutations!
"HD" a écrit dans le message de news:OzMpdht% Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression (Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de suite après cette impression?
Merci d'avance pour votre aide. -- @+ HD
Bonjour HD,
As-tu essayé ceci :
'---------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Ta macro
Impression
Autre Macro
Cancel = True
End Sub
'---------------------------------
Salutations!
"HD" <hd@anti.spam.fr> a écrit dans le message de news:OzMpdht%23DHA.684@tk2msftngp13.phx.gbl...
Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression
(Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de
suite après cette impression?
'--------------------------------- Private Sub Workbook_BeforePrint(Cancel As Boolean)
Ta macro Impression Autre Macro
Cancel = True
End Sub '---------------------------------
Salutations!
"HD" a écrit dans le message de news:OzMpdht% Bonjour,
Je sais qu'il est possible de lancer une macro avant l'impression (Workbook_BeforePrint) mais Est-il possible de lancer une macro tout de suite après cette impression?
Merci d'avance pour votre aide. -- @+ HD
HD
Salut HD, Salut Serge,
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro : Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de cellule... je cherche la possibilité de faire un événement après une impression... quelque chose qui ressemblerait à un "Workbook_afterprint", propriété qui n'existe malheureusement pas :( -- @+ HD
Salut HD,
Salut Serge,
Tu pourrais tester cette approche de brousse
avant de l'adopter !
S'il n'y a pas des millions de cellules jaunes,
à ne pas imprimer, ça devrait se faire en un temps raisonnable.
Tu commences par sélectionner
la plage rectangulaire contenant tes cellules
jaunes (pas besoin de sélectionner chaque
cellule jaune) et tu appelles cette macro :
Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de
cellule... je cherche la possibilité de faire un événement après une
impression... quelque chose qui ressemblerait à un "Workbook_afterprint",
propriété qui n'existe malheureusement pas :(
--
@+
HD
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro : Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de cellule... je cherche la possibilité de faire un événement après une impression... quelque chose qui ressemblerait à un "Workbook_afterprint", propriété qui n'existe malheureusement pas :( -- @+ HD
ru-th
Salut
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Feuil1" Then Application.EnableEvents = False TaMacroColorise ActiveSheet.PrintOut TaMacroDecolorise Application.EnableEvents = True Cancel = True End If End Sub
a+ rural thierry "HD" a écrit dans le message de news: c1hng2$1v29$
Salut HD, Salut Serge,
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro : Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de cellule... je cherche la possibilité de faire un événement après une impression... quelque chose qui ressemblerait à un "Workbook_afterprint", propriété qui n'existe malheureusement pas :( -- @+ HD
Salut
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Feuil1" Then
Application.EnableEvents = False
TaMacroColorise
ActiveSheet.PrintOut
TaMacroDecolorise
Application.EnableEvents = True
Cancel = True
End If
End Sub
a+
rural thierry
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
c1hng2$1v29$2@biggoron.nerim.net...
Salut HD,
Salut Serge,
Tu pourrais tester cette approche de brousse
avant de l'adopter !
S'il n'y a pas des millions de cellules jaunes,
à ne pas imprimer, ça devrait se faire en un temps raisonnable.
Tu commences par sélectionner
la plage rectangulaire contenant tes cellules
jaunes (pas besoin de sélectionner chaque
cellule jaune) et tu appelles cette macro :
Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de
cellule... je cherche la possibilité de faire un événement après une
impression... quelque chose qui ressemblerait à un "Workbook_afterprint",
propriété qui n'existe malheureusement pas :(
--
@+
HD
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Feuil1" Then Application.EnableEvents = False TaMacroColorise ActiveSheet.PrintOut TaMacroDecolorise Application.EnableEvents = True Cancel = True End If End Sub
a+ rural thierry "HD" a écrit dans le message de news: c1hng2$1v29$
Salut HD, Salut Serge,
Tu pourrais tester cette approche de brousse avant de l'adopter ! S'il n'y a pas des millions de cellules jaunes, à ne pas imprimer, ça devrait se faire en un temps raisonnable. Tu commences par sélectionner la plage rectangulaire contenant tes cellules jaunes (pas besoin de sélectionner chaque cellule jaune) et tu appelles cette macro : Désolés on ne s'est pas compris.
Je ne cherche pas une macro pour coloriser ou "décoloriser" une plage de cellule... je cherche la possibilité de faire un événement après une impression... quelque chose qui ressemblerait à un "Workbook_afterprint", propriété qui n'existe malheureusement pas :( -- @+ HD
HD
Effectivement ça fonctionne du tonnerre !!!
Encore un seul problème... Si l'utilisateur n'imprime pas une seule feuille mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un ActiveWorkbook.PrintOut ?
-- @+ HD
Effectivement ça fonctionne du tonnerre !!!
Encore un seul problème... Si l'utilisateur n'imprime pas une seule feuille
mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un
ActiveWorkbook.PrintOut ?
Encore un seul problème... Si l'utilisateur n'imprime pas une seule feuille mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un ActiveWorkbook.PrintOut ?
-- @+ HD
ru-th
re-
tu peux toujours rajouter un test supplémentaires sur le nombre de feuilles selectionnés if ActiveWindow.SelectedSheets.Count>1 then exit sub (par exemple)
a+ rural thierry
"HD" a écrit dans le message de news: #5wKwP7#
Effectivement ça fonctionne du tonnerre !!!
Encore un seul problème... Si l'utilisateur n'imprime pas une seule feuille
mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un ActiveWorkbook.PrintOut ?
-- @+ HD
re-
tu peux toujours rajouter un test supplémentaires sur le nombre de feuilles
selectionnés
if ActiveWindow.SelectedSheets.Count>1 then exit sub (par exemple)
a+
rural thierry
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
#5wKwP7#DHA.1844@TK2MSFTNGP11.phx.gbl...
Effectivement ça fonctionne du tonnerre !!!
Encore un seul problème... Si l'utilisateur n'imprime pas une seule
feuille
mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un
ActiveWorkbook.PrintOut ?
tu peux toujours rajouter un test supplémentaires sur le nombre de feuilles selectionnés if ActiveWindow.SelectedSheets.Count>1 then exit sub (par exemple)
a+ rural thierry
"HD" a écrit dans le message de news: #5wKwP7#
Effectivement ça fonctionne du tonnerre !!!
Encore un seul problème... Si l'utilisateur n'imprime pas une seule feuille
mais fait une impression du classeur entier ?
Comment savoir si l'utilisateur a fait un ActiveSheet.PrintOut ou un ActiveWorkbook.PrintOut ?