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 :

Impression et alertes marges


Sujet :

VBA Word

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut Impression et alertes marges
    Bonjour à tous,

    Pour éviter les alertes de marges à chaque section et après avoir constaté que modifier les marges ne change rien hormis "mettre en vrac" mon document, j'utilise le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Sub TurnOffAlertsAndPrint()
          ' Store current Background Printing setting.
          Dim x As Boolean
          x = Options.PrintBackground
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
          ' Print the active document.
          ActiveDocument.PrintOut
          ' Turn on error messaging and restore Background Printing
          ' to original setting.
          Application.DisplayAlerts = wdAlertsAll
          Options.PrintBackground = x
       End Sub
    Malheureusement le script imprime tout le document.

    Je souhaiterais que Word me demande quelles pages sont à imprimer :
    - toutes
    - pages 1 sur 5
    - page 1;2;3;4

    Malgré toute ma bonne volonté, je ne trouve pas de solution adéquate.

    Quelqu'un pourrait-il m'aider?

    Merci
    Thomas

  2. #2
    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,


    C'est normal, si tu ne passes pas d'argument à la méthode .PrintOut, toutes les pages sont imprimées.

    Tu peux passer le paramètre Pages.

    La valeur de ce paramètre est un String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveDocument.PrintOut Page:="1, 3-5"
    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 !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Merci pour ta réponse Heureux-Oli,
    En fait, je n'ai pas précisé que je n'imprime jamais les même pages du document.

    Ta solution marche très bien mais je dois modifier les pages à imprimer à chaque impression et en ouvrant le script chaque fois.
    D'où mon souhait de créer un invite de commande dans le script.

    Mais là c'est peut être trop en demander à word

    Bon week end
    Thomas

  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
    Salut,

    Ça, j'avais compris.

    Les pages que je donne sont juste un exemple.
    C'est à toi de gérer les pages souhaitées avec un UserForm ou un InputBox.
    Et on passe le résultat en argument.
    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 confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Merci de ta réponse,

    Je viens d'essayer dans Visual Basic de créer un userForm,
    Niveau esthétique c'est pas mal,
    par contre niveau code c'est pas gagné.

    Là, j'ai vraiment besoin d'aide pour associer l'userForm à la macro et fermer automatiquement l'userForm après avoir appuyer sur "Imprimer"

    http://www.hostingpics.net/viewer.ph...13Image000.png

    Si il y en a qui travaillent le 11 novembre...
    exemple bien venu

    bon week end,

    Thomas
    Fichiers attachés Fichiers attachés

  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,

    Avec ton UserForm, tu proposes trois choix.

    Tout, En cours ou Certaines pages.

    La première chose est donc une procédure décisionnelle.

    Pour éviter un choix multiple, je pense que tu devrais avoir trois cases à cocher et un effet bouton radio sur ces trois cases.
    En fonction du choix, on passe l'un ou l'autre paramètre.
    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 !

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Merci Heureux Oli,

    Je comprend ce que tu veux dire :
    lorsque je coche une case à cocher ça validerat le bouton radio.

    Par contre, aurais tu un exemple car je ne suis pas capable de réaliser ces associations.

    J'ai déjà mis la matinée pour créer le formulaire

    Si je savais par quel bout l'attraper... lol

    Merci

  8. #8
    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,

    Ça devrait ressembler à ça.
    Fichiers attachés Fichiers attachés
    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 !

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Merci beaucoup pour ton exemple Heureux Oli,

    J'ai appris plein de chose avec ton code.

    J’espère que tous les "forumeur" ne sont pas tous aussi débutant que moi.

    Deux points encore :

    La macro suivante ouvre bien l' UserForm mais n'imprime pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub USERFORMPRINT()
    UserForm4.Show
     
    End Sub
    J'ai constaté aussi qu’après la validation de "OK" l'UserForm ne se ferme pas tout seul.

    Alors j'ai tenté des manipulations diverses,
    Ne te moque pas svp

    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
    Option Explicit
     
    Private Sub ToggleButton3_Click()
    Me.txtPages.Enabled = True
     
    End Sub
     
    Private Sub CommandButton1_Click()
    If Me.OptionButton1 Then MsgBox "Page en cours"
    If Me.OptionButton2 Then MsgBox "Toutes les pages"
    If Me.OptionButton3 Then MsgBox Me.txtPages
     
    End Sub
     
     
    Private Sub OptionButton3_Click()
    Me.txtPages.Enabled = True
     
    End Sub
     
    Private Sub UserForm_Click()
     Debug.Print Me.OptionButton1.Value
     Dim x As Boolean
          x = Options.PrintBackground
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
          ' Print the active document.
          Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
          ' Turn on error messaging and restore Background Printing
          ' to original setting.
          Application.DisplayAlerts = wdAlertsAll
          Options.PrintBackground = x
       Wend
     
    rs.Close
    Set rs = Nothing
    Set db = Nothing
     
     
    End Sub
    Si tu pouvais m'aider encore pour en finir,

    Merci,
    et re merci pour répondre un 11 novembre, 11/11/11

  10. #10
    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,

    Pour un UserForm, il y a plein de choses possibles.

    La première est d'y mettre des contrôles, par contrôles, on entend des zones de texte, des cases à cocher, des boutons, ...
    Chaque objet déposé sur un userform réagit à des évènements comme le clic, le double-clic, ...

    Dans le code on sait qu'il s'agit d'un évènement lorsque le nom du contrôle est suivi d'un évènement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Sub MonBonton_Clic()
    va être appelé lorsque je vais cliquer sur mon bouton

    Si je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Click()
    Mon code sera exécuté lorsque je vais cliquer sur mon UserForm.
    Mais pas sur un controle comme mon bouton.

    Dans le code que j'avais mis dans le UserForm, on obtiens le résultat des boutons d'options en cliquant sur le bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
    If Me.OptionButton1 Then MsgBox "Page en cours"
    If Me.OptionButton2 Then MsgBox "Toutes les pages"
    If Me.OptionButton3 Then MsgBox Me.txtPages
     
    End Sub
    C'est là que tu dois lancer ton code pour l'impression.
    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 !

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Le 11 novembre et de nuit !
    Nous sommes au moins 2 ce soir devant un ordi.

    En voilà un bout :

    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
    ption Explicit
     
    Private Sub ToggleButton3_Click()
    Me.txtPages.Enabled = True
     
    End Sub
     
    Private Sub CommandButton1_Click()
    If Me.OptionButton1 Then
    Dim x As Boolean
          x = Options.PrintBackground
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
          ' Print the active document.
          Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
          ' Turn on error messaging and restore Background Printing
          ' to original setting.
          Application.DisplayAlerts = wdAlertsAll
     
    End If
    If Me.OptionButton2 Then
            x = Options.PrintBackground
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
          ' Print the active document.
           Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
          ' Turn on error messaging and restore Background Printing
          ' to original setting.
          Application.DisplayAlerts = wdAlertsAll
     
    End If
     
    End Sub
    Reste le plus compliqué,
    Récupérer la variable...

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Bon je cale !

    Pour l'option 3 je comprend le principe mais je ne trouve pas la bonne syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:=txtPages, PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Je ne trouve vraiment pas, quelqu'un a une idée?
    Merci
    Thomas

  14. #14
    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,

    Pas besoin de répéter tout le code à chaque fois.

    Voilà à quoi devrait ressembler ton 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
     
    Private Sub CommandButton1_Click()
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
     
    If Me.OptionButton1 Then
          ' Print the active document.
        Application.PrintOut Range:=wdPrintCurrentPage
     
    End If
    If Me.OptionButton2 Then
          ' Print the active document.
        Application.PrintOut Range:=wdPrintAllDocument
     
    End If
    If Me.optionbutton3 Then
        Application.PrintOut Pages:=Me.txtPages
     
    End If
    Application.DisplayAlerts = wdAlertsAll
     
    End Sub
    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 !

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Salut voisin européen,

    Je rêverai d'aller à Bruges, c'est parait-il superbe.
    Peut-être à noël... j'espère,

    Pour le code,
    Je te remercie du temps que tu me consacre et de l'aide que tu m'apporte,
    C'est extrêmement gentil de ta part.

    Lorsque je lance le script, j'ai une erreur sur l'option 3 :
    "erreur d'execution '13'
    incompatibilité de type
    Si je clic sur débogage : "Application.PrintOut Pages:=Me.txtPages" est surligné en jaune.

    Par ailleurs, j'ai testé, dans les propriété du "OptionButton3" de mettre value "true" pour que la case soit cochée par défault.

    Malheureusement ça bloque la case du dessous : "pages"

    Enfin, y a t il un moyen pour que l'user Form se ferme tout seul aprés avoir cliqué sur OK "CommandButton1" ?

    Merci,

    Bon aprés midi,

    Thomas

  16. #16
    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,

    Incompatibilité, c'est que la valeur contenue dans le contrôle n'est pas interprétée comme du texte.

    Il faut donc convertir la valeur en text.
    Une solution serait de concaténer un " devant et derrière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chr(34) & Me.txtPages & Chr(34)
    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 !

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Salut Heureux,

    Désolé mais ça ne marche toujours pas, ça imprime le document en entier
    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
    Option Explicit
     
    Private Sub ToggleButton3_Click()
    Me.txtPages.Enabled = True
     
    End Sub
     
    Private Sub CommandButton1_Click()
          ' Turn off error messaging and Background Printing.
          Application.DisplayAlerts = wdAlertsNone
          Options.PrintBackground = False
     
    If Me.OptionButton1 Then
          ' Print the active document.
        Application.PrintOut Range:=wdPrintCurrentPage
     
    End If
    If Me.OptionButton2 Then
          ' Print the active document.
        Application.PrintOut Range:=wdPrintAllDocument
     
    End If
    If Me.OptionButton3 Then
        Application.PrintOut Pages:=Chr(34) & Me.txtPages & Chr(34)
     
    End If
    Application.DisplayAlerts = wdAlertsAll
     
     
    End Sub
     
    Private Sub OptionButton1_Click()
     
    End Sub
     
    Private Sub OptionButton3_Click()
    Me.txtPages.Enabled = True
    End Sub
     
    Private Sub UserForm_Click()
    Debug.Print Me.OptionButton1.Value
     
     
    End Sub
    c'est quoi ce 34?
    Merci

  18. #18
    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,

    Ce 34 est pour avoir un " qui est interprété par le code comme l'ouverture d'une valeur de type chaîne ou string.

    sera un texte avec trois caractères 2, 5 et 6

    Alors que

    on aura au contraire un nombre.

    Pour le code que j'ai donné, il manque un argument et pour contrer l'incompatibilité de type, je passe par une variable texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim myStr As String
    myStr = Me.txtpages
     
    If Me.OptionButton1 Then Application.PrintOut Range:=wdPrintCurrentPage
    If Me.OptionButton2 Then Application.PrintOut Range:=wdPrintAllDocument
    If Me.OptionButton3 Then Application.PrintOut Range:=wdPrintRangeOfPages, Pages:=myStr
     
     
    End Sub
    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 !

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Par défaut
    Génial !
    Merci beaucoup,

    C'est trop passionnant !

    Écris tu des livres spécialisés en VBA pour apprendre les bases?

    Ou en connais tu un de bien écrit pour partir de zéro?

    Pour 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
    Private Sub CommandButton1_Click()
     With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="Positioncurseur"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.WholeStory
        Selection.Range.HighlightColorIndex = wdNoHighlight
        Selection.GoTo What:=wdGoToBookmark, Name:="Positioncurseur"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
     
    Application.DisplayAlerts = wdAlertsNone
    Options.PrintBackground = False
    Dim myStr As String
    myStr = Me.txtPages
     
     
    If Me.OptionButton1 Then Application.PrintOut Range:=wdPrintCurrentPage
    If Me.OptionButton2 Then Application.PrintOut Range:=wdPrintAllDocument
    If Me.OptionButton3 Then Application.PrintOut Range:=wdPrintRangeOfPages, Pages:=myStr
    Application.DisplayAlerts = wdAlertsAll
    Unload Me
     
    End Sub
    Il fonctionne très bien mais je souhaiterais le faire évoluer un peu plus :

    Je souhaiterais que l'optionbutton3 soit activé par défaut et que le curseur soit automatiquement placé dans le "txtPages"

    Est-ce possible?

    Merci,
    Thomas

    ps : J'aime bien comment tu m'aide,
    Tu ne me donne pas la réponse "toute faite", ça me fait apprendre et réfléchir, c'est top,
    Félicitation !

    re ps : tu as vu? j'ai trouvé tout seul le fonction "unload me" et comment créer un signet, tout sélectionner, enlever le surlignage puis revenir au signet !!

  20. #20
    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,

    Pour que l'OptionBouton3 soit actif par défaut, il faut simplement mettre sa valeur par défaut à True dans les propriétés.

    Pour que le curseur soit dans la case txtPages, il suffit lors du chargement du formulaire de mettre dans le code Me.txtPages.SetFocus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub UserForm_Activate()
    Me.txtPages.SetFocus
    End Sub
    Non, je n'écris pas de livre.

    Mais sur la rubrique Word, les rubriques Office et sur mon espace Perso, tu trouveras des tutos sur le VBA.
    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. Réponses: 2
    Dernier message: 01/08/2013, 10h54
  2. Marges à l'impression
    Par sperron dans le forum ASP
    Réponses: 3
    Dernier message: 24/05/2006, 16h05
  3. Fixer les marges à l'impression.
    Par roots_man dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/11/2004, 10h30

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