Bonjour tout le monde,

J'ai créé une macro VBA qui demande à l'utilisateur une lettre entre A à Z (ou All) et qui imprime la page demandée (par rapport à la lettre).

Voici le code :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Sub ImpressionDeLaLettre()
'
' ImpressionDeLaLettre Macro
'
'
Dim LetterToPrint As String
 
'j'affecte à LetterToPrint la lettre qui sera encodée pour impression
LetterToPrint = InputBox("Veuillez indiquer quelle lettre voulez vous imprimer", "Choix de la lettre à imprimer (ALL pour imprimer toutes les pages)")
 
'je transforme les lettres minuscules en lettre majuscule
LetterToPrint = UCase(LetterToPrint)
 
'par rapport à LetterToPrint, j'imprime la bonne page ou toutes les pages si le choix est ALL
Select Case LetterToPrint
    Case "A"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="1", To:="1"
    Case "B"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="2", To:="2"
    Case "C"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="3", To:="3"
    Case "D"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="4", To:="4"
    Case "E"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="5", To:="5"
    Case "F"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="6", To:="6"
    Case "G"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="7", To:="7"
    Case "H"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="8", To:="8"
    Case "I"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="9", To:="9"
    Case "J"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="10", To:="10"
    Case "K"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="11", To:="11"
    Case "L"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="12", To:="12"
    Case "M"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="13", To:="13"
    Case "N"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="14", To:="14"
    Case "O"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="15", To:="15"
    Case "P"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="16", To:="16"
    Case "Q"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="17", To:="17"
    Case "R"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="18", To:="18"
    Case "S"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="19", To:="19"
    Case "T"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="20", To:="20"
    Case "U"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="21", To:="21"
    Case "V"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="22", To:="22"
    Case "W"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="23", To:="23"
    Case "X"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="24", To:="24"
    Case "Y"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="25", To:="25"
    Case "Z"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="26", To:="26"
    Case "ALL"
        ActiveWindow.PrintOut Range:=wdPrintFromTo, From:="1", To:="26"
    Case Else
        MsgBox ("Veuillez encoder une lettre de A à Z ou ALL, opération annulée !")
 
 
End Select
End Sub
J'aimerais que la macro se lance à chaque démarrage de mon fichier nommé "Impression".

Comment puis-je faire svp ?

Je vous en remercie d'avance.

beegees