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

Macros et VBA Excel Discussion :

Imprimer mes feuilles Excel avec une userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Points : 76
    Points
    76
    Par défaut Imprimer mes feuilles Excel avec une userform
    Bonjour a tous

    Je souhaite avoir une Userforme pour pouvoir imprimer mes feuilles excel .
    => j'aimerais ajouter un bouton pour pouvoir imprimer tous mes onglets et pouvoir exclure Quelques feuilles comme accueil par exemple .


    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
    76
    77
    78
    79
    80
    81
    Option Explicit
    'Déclaration
    Sub SelectSheets()
        Dim I As Integer
        Dim TopPos As Integer
        Dim SheetCount As Integer
        Dim PrintDlg As DialogSheet
        Dim CurrentSheet As Worksheet
        Dim cb As CheckBox
        Application.ScreenUpdating = False
     
    '   regarder si le classeur est protégé
        If ActiveWorkbook.ProtectStructure Then
            MsgBox "Le classeur est protégé.", vbCritical
            Exit Sub
        End If
     
    '   ajouter dialog sheet tempo
        Set CurrentSheet = ActiveSheet
        Set PrintDlg = ActiveWorkbook.DialogSheets.Add
     
        SheetCount = 0
     
    '   ajouter les checkboxes
     
        TopPos = 40
        For I = 1 To ActiveWorkbook.Worksheets.Count
            Set CurrentSheet = ActiveWorkbook.Worksheets(I)
    '       Sauter les Sop vide et sop caché
            If Application.CountA(CurrentSheet.Cells) <> 0 And _
                CurrentSheet.Visible Then
                SheetCount = SheetCount + 1
                PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
                    PrintDlg.CheckBoxes(SheetCount).Text = _
                        CurrentSheet.Name
                TopPos = TopPos + 13
            End If
        Next I
     
    '   Bouger le ok et le cancel
        PrintDlg.Buttons.Left = 240
     
    '   Set dialog height, width, and caption
        With PrintDlg.DialogFrame
            .Height = Application.Max _
                (68, PrintDlg.DialogFrame.Top + TopPos - 34)
            .Width = 230
            .Caption = "Cochez les feuilles à imprimer."
     
        End With
     
    '   Change tab order of OK and Cancel buttons
    '   so the 1st option button will have the focus
        PrintDlg.Buttons("Button 2").BringToFront
        PrintDlg.Buttons("Button 3").BringToFront
     
    '   Display the dialog box
        CurrentSheet.Activate
        Application.ScreenUpdating = True
        If SheetCount <> 0 Then
            If PrintDlg.Show Then
                For Each cb In PrintDlg.CheckBoxes
                    If cb.Value = xlOn Then
                        Worksheets(cb.Caption).Activate
                        ActiveSheet.PrintOut
    '                   ActiveSheet.PrintPreview 'for debugging
     
                    End If
                Next cb
            End If
        Else
            MsgBox "Toutes les feuilles sont vides."
        End If
     
    '   Delete temporary dialog sheet (without a warning)
        Application.DisplayAlerts = True
        PrintDlg.Delete
     
    '   Reactivate original sheet
        CurrentSheet.Activate
    End Sub
    Merci beaucoup

  2. #2
    Membre averti Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Points : 356
    Points
    356
    Par défaut
    Bonsoir,
    Essayez ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Wksht As Worksheet
    For Each Wksht In ThisWorkbook.Sheets
    If Wksht.Name <> "Accueil" Then
    Wksht.PrintOut
    End If
    Next
    Pour exclure plusieurs onglets de l'impression, il serait judicieux de les marquer de par la même cellule de chaque onglet par exemple la cellule A1 = FALSE, celà vous evitera de citer plusieures conditions de nom d'onglets dans votre boucle conditionnelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Wksht As Worksheet
    For Each Wksht In ThisWorkbook.Sheets
    If Wksht.Range("A1").Value<>FALSE Then
    Wksht.PrintOut
    End If
    Next

    Bien cordialement.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

Discussions similaires

  1. Sélection d'une feuille excel avec une listbox
    Par felibelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2022, 17h27
  2. reprise : Sélection d'une feuille excel avec une listbox
    Par philippe6 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/09/2013, 11h41
  3. importer feuille excel avec une requête sql
    Par rochna dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/09/2010, 13h10
  4. Réponses: 2
    Dernier message: 29/07/2010, 15h16
  5. Sélection des lignes de feuille Excel avec une listbox
    Par wlofab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/07/2008, 15h35

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