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 :

Impression onglets de différents classeurs par case à cocher


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef d"équipe
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef d"équipe
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Par défaut Impression onglets de différents classeurs par case à cocher
    Bonsoir à tous,

    J'ai bien fouillé sur le forum et malgré la discussion de Cannie du 12/03/2009, je n'y arrive pas...

    Voilà à quoi j'aimerai aboutir :

    Je travail dans l'industrie et nous avons des machines sur lesquels nous faisons de la maintenance préventive et des relevés de paramètres selon les pièces produites (30 machines avec autant de référence de pièces...). J'ai réussi à créer une macro qui imprime automatiquement toutes ces feuilles en allant chercher dans les différents classeurs, éparpillés sur le serveur, les onglets "qui vont bien".

    Le hic, c'est que j'imprime toutes les feuilles mais nous n'avons pas forcément besoin de toutes ces feuilles car toutes nos références de pièces ne sont pas produites en même temps (et également dans un soucis environnementale !).

    De ce fait, je suis en train de créer un fichier Excel avec des cases à cocher, et en fonction de ces cases, en appuyant sur un bouton "imprimer", cela imprimera uniquement les feuilles dont nous avons besoin. Malheureusement, je fais des tests et cela imprime que la case soit cochée ou non...

    Seriez-vous me dire ou est le problème dans ma macro svp ?

    Voici le début de ma macro (je n'ai pas mis toutes les cases à cocher... Mais mon idée est de répéter ce texte autant de fois que nécessaire avec toutes les cases à cocher) :

    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
    Sub Bouton1clic()
     
    If caseàcocher1_clic = vrai Then
     
    ChemXLS = "P:\xxxxxxxxxxxxxxxxxxxxxxx\03 746 11.xls" '
    Set Fichier = Workbooks.Open(ChemXLS)
    With Fichier
    With .Worksheets("U-Ctrl paramètre usinage ou ass")
    .PageSetup.PaperSize = xlPaperA3
    .PageSetup.Zoom = 135
    Application.ActivePrinter = "Rey-Atelier - Canon 2525i RV sur Ne01:"
    .PrintOut
    End With
    End With
    Fichier.Close True
    Set Fichier = Nothing
     
    End If
     
    If Caseàcocher2_clic = vrai then
    ....
    ....
    ....
    ....
    End If
     
    If caseàcocher3_clic = vrai then
    ....
    ....
    ....
    End If
     
    End Sub
    Et une petite photo :

    Nom : Exemple.JPG
Affichages : 833
Taille : 26,1 Ko


    J'ai également d'autres blocages, je ne parviens pas à trouver sur internet comment sélectionner toutes les cases ou inversement, à partir d'un bouton, mais chaque chose en son temps...

    Et le must, serait qu'une fois que j'aurai remédié à mon problème ci-dessus, ça serait de faire une Userform pour l'esthétisme !

    Nom : Exemple2.JPG
Affichages : 804
Taille : 36,3 Ko

    Merci de l'aide que vous pourriez m'apporter !!

    A+
    Alweax.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Pour le test, tu colles ce code dans le module de la feuille mais au préalable, tu remplaces les cases à cocher "Formulaire" par des cases à cocher "ActiveX" (plus facile pour transférer le code dans un UserForm par la suite puisque tel est ton souhait), tu pose un bouton "ActiveX" que tu nommes "CmdImprimer" :
    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
     
    Private Sub CmdImprimer_Click()
     
        Dim Ctrl As OLEObject
        Dim Sel As Boolean
        Dim I As Integer
     
        'parcour les objets posés sur la feuille
        For Each Ctrl In Me.OLEObjects
     
            'si l'objet en cours est une case à cocher...
            If TypeName(Ctrl.Object) = "CheckBox" Then
     
                'si cochée...
                If Ctrl.Object.Value = True Then
     
                    'enregistre le fait qu'une case au moins est cochée
                    I = 1
     
                    'si pas encore de sélection, sélectionne la feuille
                    'et défini Sel à True pour maintenir la feuille sélectionnée
                    'par la suite
                    If Sel = False Then
     
                        Worksheets(Ctrl.Object.Caption).Select (True)
                        Sel = True
     
                    End If
     
                    'continu la sélection des feuilles
                    Worksheets(Ctrl.Object.Caption).Select (False)
     
                End If
     
            End If
     
        Next
     
        'si au moins une feuille définie pour l'impression
        If I = 1 Then
     
            With ThisWorkbook
     
                 '.Windows(.Name).SelectedSheets.PrintPreview
                .Windows(.Name).SelectedSheets.PrintOut
                .Worksheets(1).Select
     
            End With
     
        Else
     
            MsgBox "Vous devez sélectionner une feuille au minimum !", vbExclamation, "Impression."
     
        End If
     
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef d"équipe
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef d"équipe
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Par défaut
    Bonjour,

    Merci Theze pour votre réponse, je ferai l'essai ce week-end à tête reposée...

    Je vous tiendrai informé du résultat !

Discussions similaires

  1. [AC-2003] Comparaison d'enregistrement par case à cocher
    Par ez29kiel dans le forum IHM
    Réponses: 2
    Dernier message: 24/06/2009, 13h41
  2. Sélection par case à cocher sur plusieurs pages de formulaire
    Par lodan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2009, 15h44
  3. [A 03] - Ajout enregistrement par case à cocher
    Par enkoder dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/11/2008, 20h35
  4. Impression suite à un choix par case à cocher
    Par doudoufly dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/07/2008, 23h05
  5. Réponses: 5
    Dernier message: 25/10/2007, 13h23

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