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 avec case cocher


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut impression avec case cocher
    Bonjour à tous!

    je suis nouvelle sur ce forum qui me parait être une mine d'or!

    j'ai un souci à résoudre vite et je suis très débutante...

    j'ai un classeur excel avec plusieurs feuilles dont une pour le choix des impressions. chaque feuille comporte plusieurs "pages" à éditer ou non si besoin.

    la feuille impression me sert à gérer ces impressions de pages, une page correspond à une plage de cellule, que je souhaite associer à une case à cocher; si on coche la case, la plage de cellules s'imprime.

    je tourne en rond et je n'avance pas...

    avez vous déjà traité ce sujet, car je n'ai pas trouvé sur le forum; ou bien pourriez vous me conseiller quelques livres pour améliorer mes connaissances...

    merci par avance de votre aide

    A+

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    En général le mieux pour pouvoir avoir une réponse pertinente est de montrer le bout de code qui pose problème.

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    merci pour la réponse, je vais travailler le sujet car je crains que mon "code" soit approximatif....

    si vous pouvez me proposer une liste de bouquins , je suis preneur...

    merci et A+

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Je ne peux pas te conseiller de bouquins par contre il existe d'excellents sites, celui-ci par exemple de silkyroad

    je vais travailler le sujet car je crains que mon "code" soit approximatif
    Peu importe que ton code soit approximatif, ça arrive a tout le monde en plaçant ton bout de code tu auras des conseils et pourra progresser rapidement.

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Voila un cour de Developpez.com que j'utilise souvent
    http://ftp-developpez.com/bidou/Cour...rmationVBA.pdf
    Il est un peu lourd (200 pages ) mais relativement exaustif (pour un début) et bien structuré on trouve rapidement l'info que l'on cherche. Sinon tu peux commencer par les différent tutoriel et Faq présente sur le site. Tu n'as pas forcément besoin de chercher des bouquins.

    Bonne chance

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    merci pour vos réponses et pour ce dossier qui va m'être utile!
    comme dit plus haut je suis débutante et dans une période de travail astronomique, alors je n'ai pas pu travailler beaucoup sur ce document que j'ai téléchargé

    pourriez vous corriger et me dire où cela pêche svp:

    j'ai un classeur excel avex plusieurs feuilles
    l'une d'entre elles me sert de pilotage des impressions:

    GA Dossier Général Annuel
    GA1 Points en Suspens
    GA2 Notes de Synthèse (2 tableaux) ect

    a chaque ligne (GA, GA1...)correspond une case à cocher avec cette macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Caseàcocher43_QuandClic()
    If caseàcocher = vrai Then
    Sheets("dosan").Range("a1:j55").Select
    End If
    End Sub
    Sub Caseàcocher44_QuandClic()
    If caseàcocher44 = vrai Then
    Sheets("dosan").Range("l1:v55").Select
    End If
    End Sub
    j'ai un bouton impression auquel j'affecte cette macro:

    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
    Sub Bouton89_QuandClic()
    '
    ' impression feuilles selectionnees
    ' Macro enregistrée le 17/03/2009 par
    '
       ActiveSheet.Shapes("Button 89").Select
        Selection.Characters.Text = "IMPRIMER"
        With Selection.Characters(Start:=1, Length:=8).Font
            .Name = "Helv"
            .FontStyle = "Normal"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
        Range("D2").Select
        ActiveSheet.Shapes("Button 89").Select
        Selection.OnAction = "'DOSSIER ANNUEL.XLS'!Module2.Bouton89_QuandClic"
    If caseàcocher43 = vrai Then
    Sheets("dosan").Range("a1:j55").PrintOut
    End If
    et à la selection de la case à cocher j'ai une erreur 1004.

    elles se cochent quand même mais cela ne m'imprime que la premiere feuille soit la case a cocher 43.

    de plus, est il possible de faire imprimer chaque feuille avec son format portrait ou paysage et centré comme selectionné dans la mise en page?

    merci pour toute aide que vous m'apporterez

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    merci à m. Jochmans pour la modif

    j'ai toujours cette erreur 1004 mais je passe outre et cela marche!

    j'envoie en piece jointe mon fichier, si quelqu'un peut me trouver la solution pour ce message erreur....qui me fatigue!...

    de plus dans ces feuilles il y en a 2 à imprimer en paysage.

    est il possible de paramétrer l'impression paysage en macro?

    A+ de vous lire, j'espère, car les conseils m'ont fait gaganer un temps précieux!
    Fichiers attachés Fichiers attachés

  9. #9
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PageSetup.Orientation = xlLandscape ' orientation Paysage
       '   .Orientation = xlPortrait => orientation portrait

  10. #10
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Je vien de jeter un coup d'oeil sur ton fichier, le code du bouton m'a l'air un peut trop compliquer avec du code inutile.

    Ce que je ferai, c'est ajouter un bouton "Contrôle Activex" au lieu du bouton du formulaire. Ainsi tu peux définir toutes les proprietes nom, apparence ... sans problème et sans passer par le code.

    En mode creation double clique sur le bouton et le code apparait sur la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Bouton89_QuandClicII 'J'ai rajouté cette macro dans un module standard
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Bouton89_QuandClicII()
    '
    If caseàcocher43 = vrai Then
    Sheets("dosan").Range("a1:j55").PrintOut
    End If
    If caseàcocher44 = vrai Then
    Sheets("dosan").Range("l1:v55").PrintOut
    End If
    End Sub

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    merci beaucoup pour cette aide!

    c'est pile poil ce qui me fallait!

    A+

  12. #12
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Content que ça fonctionne, une petite remarque, tu pourrais faire de même avec les cases à cocher ainsi tu peux atteindre toutes tes cases avec une boucle de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub TestControl()
    Dim OLe As OLEObject
    
    For Each OLe In ActiveSheet.OLEObjects
    If Mid$(OLe.Name, 1, 8) = "CheckBox" Then
        If OLe.Object.Value = True Then
            ' Run OLe.Name & "_action" '=> exemple pour lancer une macro nommée CheckBoxn_action
            ' MsgBox Mid$(OLe.Name, 9, 1) '=> Affichage du numéro de la checkbox
        End If
    End If
    Next
    Pour ton erreur je pense que c'est du a la numérotation RC qui pose quelques problèmes de sélection avec la classe range. J'ai déja vu ça sur le forum.

    J'ai modifié le code de la case à cocher comme suit et ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Worksheets("dosan").Range("a1:j55").Select

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    merci aalex!

    encore cette fichue erreur:

    erreur execution 1004:
    la methode select de la classe range a echoué

    si je debogue il met la ligne sheets en jaune

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Caseàcocher43_QuandClic()
    If caseàcocher = vrai Then
    Sheets("dosan").Range("a1:j55").Select
    End If
    End Sub
    et si je clique sur fin, et cela marche quand même...

    avez vous une solution pour enlever ce message horripilant?

    merci et A+

  14. #14
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    As-tu essayé en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Worksheets("dosan").Range("a1:j55").select
    En rajoutant Thisworkbook, je n'ai plus le plantage sur ton fichier.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    en fait j'ai le même message erreur, qui surligne en jaune la ligne thisworkbook au débogage....va comprendre charles....

    même message erreur et la ligne thisworkbook se met en jaune au débogage...

  16. #16
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Dommage, c'était pourtant apparemment la solution ici

    Quelqu'un sur le forum aurait-il des explications pour ce problème, je n'utilise pas les références LC.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    toujours pas de réponse à mon souci?

    je vous remet le fichier en cause qui me marque cette erreur execution 1004
    avec: la methode select de la classe range a echoué ,
    mais si je clique sur ok cela marche quand meme....

    merci pour toute aide!
    A+
    Fichiers attachés Fichiers attachés

  18. #18
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Plus tellement habitué à travailler avec des Select

    Je ne comprends pas vraiment pourquoi ça ne fonctionne pas, peut-être est-ce lié aux checkbox sur la feuille, je ne sais pas.

    En tout cas j'ai trouvé une solution qui chez moi fonctionne : Selectionner en premier la feuille et en deuxième le range :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ThisWorkbook.Worksheets("DOSAN").Select
    Range("L1:V55").Select
    Pour mes tests j'ai ça aussi :
    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
     
    Sub Caseàcocher44_QuandClic()
    If caseàcocher44 = vrai Then
     MaMacroSelect 44, "DOSAN"
    End If
    End Sub
     
    Sub MaMacroSelect(Num As Integer, MaFeuille As String)
    Dim MaPlage As Range
    Dim Wb As Worksheet
    Set Wb = ThisWorkbook.Worksheets(MaFeuille)
     
    Select Case Num
    Case 43
    Set MaPlage = Wb.Range("A1:J55")
    Case 44
    Set MaPlage = Wb.Range("L1:V55")
    Case Else
    Set MaPlage = Wb.Range("A1")
    End Select
     
    Wb.Select
    Range(MaPlage.Address).Select
     
    End Sub

Discussions similaires

  1. TreeView avec case à cocher
    Par da_latifa dans le forum Delphi
    Réponses: 9
    Dernier message: 07/10/2006, 01h01
  2. Showmessage avec case à cocher
    Par ife dans le forum Delphi
    Réponses: 3
    Dernier message: 20/07/2006, 11h19
  3. CListCtrl avec case à cocher
    Par bebel72 dans le forum MFC
    Réponses: 5
    Dernier message: 20/06/2006, 14h54
  4. Réponses: 2
    Dernier message: 31/03/2006, 15h35
  5. Treeview avec case à cocher
    Par valoji dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/01/2006, 21h35

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