IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Lancer une macro à l'ouverture d'un fichier word


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Lancer une macro à l'ouverture d'un fichier word
    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

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonjour,

    Dans l'editeur VB, tu as la liste des feuilles, ajoute au code de ThisDocument

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Document_Open()
    ImpressionDeLaLettre
    End Sub

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par JackOuYA Voir le message
    Bonjour,

    Dans l'editeur VB, tu as la liste des feuilles, ajoute au code de ThisDocument

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Document_Open()
    ImpressionDeLaLettre
    End Sub
    Bonjour Jacques,

    Merci pour ta réponse.

    J'ai fait ce que tu as dis mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    ImpressionDeLaLettre
    End Sub
    à l'ouverture, rien ne se lance.

    Les macros sont pourtant activés et acceptés par défaut.

    Je suis dans :

    Project(NomDuDocument)
    Microsoft Word objet
    ThisDocument

    Qu'en penses-tu ?

    Merci encore.

    beegees

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Ta macro se trouve où ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Oups...

    as tu noté qu'as moment donné j'ai corrigé mon code,avant, je me croyais dans le forum excel ...

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Moi, je n'avais vu que Document_Open() ce qui ne me semblait pas erroné !
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. [AC-2010] Lancer une macro à l'ouverture
    Par tintinux dans le forum VBA Access
    Réponses: 9
    Dernier message: 03/09/2015, 14h24
  2. [PPT-2003] Lancement d'une macro à l'ouverture d'un fichier
    Par formabox dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 21/07/2009, 16h49
  3. [XL-2003] Lancer une macro à l'ouverture d'Excel quel que soit le fichier
    Par EtyenH dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/05/2009, 08h50
  4. lancer une macro à l'ouverture d'un classeur
    Par niro75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2008, 22h09
  5. Lancer une macro à l'ouverture d'un fichier
    Par Tibaldus dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/09/2007, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo