Bonjour,

J'ai une macro qui génère une page automatiquement avec plein de truc dessus, afin que tout soit automatisé, je gère la Mise en page avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  With ActiveSheet
        .HPageBreaks.Add .Range("A44")
        End With
 
With activesheet
        .PageSetup.LeftMargin = Application.InchesToPoints(0.17)
        .PageSetup.RightMargin = Application.InchesToPoints(0.17)
        .PageSetup.TopMargin = Application.InchesToPoints(0.17)
        .PageSetup.BottomMargin = Application.InchesToPoints(1)
        .PageSetup.HeaderMargin = Application.InchesToPoints(0.5)
        .PageSetup.FooterMargin = Application.InchesToPoints(0.5)
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        .PageSetup.Orientation = xlLandscape
        .PageSetup.Zoom = 80
'Et ensuite print module ........
Ce code qui fonctionne tourne pendant 10 à 22 secondes (suivant les machines) pour s'executer, c'est BEAUCOUP TROP Long !

Donc je voudrais essayer de créer un bouton pour n'activer ce code que lorsqu'on souhaitera imprimer !

Donc pour créer mon bouton j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 ActiveSheet.Buttons.Add(4.5, 0.75, 234, 30.75).Select
 
'Erreur ici : 
    Selection.OnAction = "Sheet1.Print_setup"  'Object Defined or Property error !!!
    ActiveSheet.Shapes("Button 10").Select
    Selection.Characters.Text = "Page Setup & Print"
    With Selection.Characters(Start:=1, Length:=18).Font
        .Name = "Arial"
        .FontStyle = "Regular"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
OU j'ai aussi essayer OLEObject .... Mais bon bref ça marche pas !!

Je pige pas pourquoi ???