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 :

Case à cocher et impression


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut Case à cocher et impression
    Bonjour à tous,

    j'espère ne pas ouvrir une discussion déjà commencée.

    je suis débutante, même ultra débutante et je ne sais pas du tout par ou commencer, je m'explique :

    j'ai un fichier excel avec plusieurs onglets. Dans le 1er onglet j'ai une liste de noms de documents (ex. acte, mémoire, formulaire...) avec des cases à cocher.

    Je souhaiterais qu'en cochant certaines de ces cases, ces noms apparaissent dans un 2ème onglet (sous forme de sommaire à puces) et ensuite que chaque nom puisse être imprimé dans les onglets suivants (un onglet par nom) pour réaliser des intercalaires.

    Est ce possible selon vous ? je le faisais avant sous Word, mais je voulosu avoue que le copier-coller me fatigue !!

    J'espère que ma question est assez claire.

    Merci d'avoir pris le temps de me lire.

    Bonne soirée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Gaelle1 et bienvenue sur ce forum

    Voici un exemple de ce que l'on peut faire

    Après avoir créé des Checkbox avec la Boîte à outils Controles
    Voici le code à utiliser
    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
    Option Explicit
    Dim DLig As Long
     
    Sub CréationSommaire()
      Dim Obj As Object
      ' Effacer le sommaire avant de commencer
      With Sheets("Sommaire")
        ' trouver la dernière ligne
        DLig = .Range("C" & Rows.Count).End(xlUp).Row
        ' Effacer is existe un sommaire
        If DLig > 5 Then .Range("B6:C" & DLig).ClearContents
        ' Pour chaque objet de la feuille MEnu
        For Each Obj In Sheets("Menu").OLEObjects
          ' Si l'objet est un checkbox
          If Left(Obj.Name, 5) = "Check" Then
            ' Si la valeur du checkbox est vrai
            If Obj.Object.Value = True Then
              ' Trouver la dernière ligne contenant une valeur dans la colonne C
              DLig = .Range("C" & Rows.Count).End(xlUp).Row
              ' On souhaite commencer le sommaire à la ligne 6
              ' Si la dernière ligne est inférieur à celle-ci
              If DLig < 6 Then DLig = 5
              ' Avec la cellule Bx
              With .Range("B" & DLig + 1)
                .Value = "F"
                With .Font
                  .Name = "Wingdings"
                  .Size = 12
                End With
              End With
              ' Inscrire le libellé de la Checkbox cochée
              .Range("C" & DLig + 1).Value = Obj.Object.Caption
            End If
          End If
        Next Obj
      End With
      ' Lancer l'impression
      Call Impression
    End Sub
     
    Sub Impression()
      Dim Lig As Long
      ' Poser la question avant d'imprimer
      If MsgBox("Voulez-vous imprimer le sommaire et les intercalaires ?", _
        vbQuestion + vbYesNo, "QUESTION ...") = vbNo Then Exit Sub
      ' Si la réposne est oui
      With Sheets("Sommaire")
        ' Imprimer le sommaire
        .PrintOut
        ' trouver la dernière ligne
        DLig = .Range("C" & Rows.Count).End(xlUp).Row
        ' Pour chaque ligne du sommaire qui commence à la ligne 6
        For Lig = 6 To DLig
          ' Inscrire la ligne du sommaire dans la feuille Intercalaire
          Sheets("Intercalaire").Range("A3") = .Range("C" & Lig)
          ' Imprimer la feuille
          Sheets("Intercalaire").PrintOut
        Next Lig
      End With
    End Sub
    A+
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 26/01/2013 à 16h20.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Merci beaucoup pour ta réponse, c'est exactement ce que je souhaite faire.
    Je t'avoue que je travaille dessus depuis tout à l'heure et j'ai quelques difficultés :
    - est ce que je dois "pré-créer" à la main mes intercalaires ? du coup je pense en créer autant que de nom de document possible.

    - malgré le code que tu m'as fourni, la liste à puce ne s'insère pas ?

    Merci pour ton aide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    @ BrunoM45

    Pensez aux personnes qui ne peuvent télécharger des fichiers, et donc merci de mettre des explications et le code sur le forum.

    Philippe

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Je n'y arrive vraiment pas, je ne comprends pas pourquoi, j'ai a peu près compris le code, mais il doit y avoir quelquechose que je fais mal ?!


    Du coup Bruno, je te laissera ajotuer le code, car c'est "ta propriété"

    J'ai rennomé mes cases à cocher comme les tiennes, en revanche j'ai laissé les 2 feuilles vides (il y a juste le titre et le nom de la feuille).

    Mais le titre du code est surligné en jaune "Sub CréationSommaire()" lorsque la manipulation est terminée.

    Gaelle

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re,

    Désolé, je ne suis pas assez explicite

    Pour moi, les seules feuilles dont tu as besoin sont les 3 du classeur que je t'ai donné.

    1) Tu fais un copier/coller du dernier checkbox de la feuille Menu
    Autant de checkbox que tu as besoin

    2) Lorsque tu lances la macro par le bouton, celle-ci va vérifier tous les objets qui existent dans la feuille (un checkbox est un objet)

    Pour chaque checkbox, une ligne est créée dans la feuille "Sommaire"
    avec dans la colonne B un caractère Wingdings en forme de doit pointé (mais tu peux changer)

    Ensuite une question est posée, si tu souhaites imprimer
    Si tu réponds "oui", le sommaire est imprimé, ainsi que chaque intercalaire grâce à la feuille correspondante.
    La cellule B3 de cette feuille est remplie automatiquement

    J'espère que ce sera plus clair

    A+

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Bonjour Bruno,

    Désolée pour le retard...
    Merci beaucoup, ça fonctionne maintenant !!!

    Juste quelques questions qui persistent :

    - Le 3ème onglet "intercalaire" ne fonctionne pas : l'intitulé n'apparait pas sur la page. As tu une idée ?

    - Dans l'onglet "sommaire et intercalaire", si je souhaite modifier l'emplacement des infos pour ma mise en page, est ce que je peux changer le nom des cellules dans le code directement ? je suppose que oui mais j'ai un peu peur de tout abimer...

    - lorsque je clique sur le bouton "imprimer", ça me propose d'enregistrer systématiquement le fichier. Est-il possible de qu'il ne me propose pas d'enregistrer et qu'il écrase les infos lorsque je réutiliserai le fichier ? si c'est trop compliqué je garderai comme c'est !

    En tout cas, merci encore pour le temps consacré !

    Gaelle

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour Gaelle

    Le 3ème onglet "intercalaire" ne fonctionne pas : l'intitulé n'apparait pas sur la page. As tu une idée ?
    Je pense que ça un rapport avec ta 3ème question

    Si l'impression te demande d'enregistrer un fichier, c'est qu'en imprimante par défaut tu as soit Adobe PDF, soit PDFCreator
    Il faut donc changer l'imprimante par défaut, ou enregistrer les fichiers

    Dans l'onglet "sommaire et intercalaire", si je souhaite modifier l'emplacement des infos pour ma mise en page, est ce que je peux changer le nom des cellules dans le code directement ?
    Je n'ai pas tester, mais je pense qu'Excel respecte l'ordre des Checkbox (Checkbox1, puis Checkbox2, etc ...)
    Donc normalement, changer le texte des Checkbox dans l'ordre souhaité devrait suffire

    A+

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Bonsoir,

    Merci beaucoup pour ton aide si précieuse !!!
    Tout fonctionne parfaitement bien !

    Super !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'impression avec les cases à cocher
    Par madseb dans le forum Access
    Réponses: 7
    Dernier message: 17/09/2022, 18h20
  2. [Toutes versions] Case à cocher Previsualisation impression
    Par Aladin_23 dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/09/2011, 21h02
  3. impression avec case cocher
    Par cannie dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 25/03/2009, 11h57
  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. Système d'impression via des cases à cocher
    Par altecad dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2007, 15h37

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