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 :

Problème pour générer une 2e case à cocher dans tous mes onglets


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Agent administratif
    Inscrit en
    Octobre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent administratif
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 18
    Par défaut Problème pour générer une 2e case à cocher dans tous mes onglets
    Bonjour,
    J'utilise actuellement ce code afin de générer une case à cocher sur tous mes onglets :
    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
    Sub Creation_bouton()
    Dim PosG As Integer
    Dim PosH As Integer
    Dim Hauteur As Integer
    Dim Longueur As Integer
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
    ws.Activate
    'Position en fonction d'une cellule
       With Range("E1")
           PosG = .Left
           PosH = .Top
           Hauteur = .Height
           Longueur = .Width
       End With
       With ActiveSheet.CheckBoxes
          .Add(PosG, PosH, Longueur, Hauteur).Select
          .OnAction = "cmdCacherAfficher_Click"
          .Caption = "2015"
     
       End With
     
       Next ws
    End Sub
    Ces cases activent la macro suivante :
    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
    Private Sub cmdCacherAfficher_Click()
     
        With Range("F1:F1").EntireColumn
        .Hidden = Not .Hidden
     
        End With
        With Range("I1:I1").EntireColumn
        .Hidden = Not .Hidden
     
        End With
            With Range("G1:G1").EntireColumn
        .Hidden = Not .Hidden
     
        End With
        With Range("j1:J1").EntireColumn
        .Hidden = Not .Hidden
     
        End With
    End Sub
    Lorsque je veux créer une 2e case j'utilise le même code en modifiant la cellule de destination :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Creation1_bouton()
    ...
       With Range("H1")
    ...
    End Sub
    Cela se génère bien.
    Mais je dois aussi changer le nom et elles doivent activer une autre macro. Lorsque je change quelque chose sur ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Creation1_bouton()
    ...
       ...
          .OnAction = "cmdCacherAfficher1_Click"
          .Caption = "2014"
    ...
    End Sub
    A ce moment la les cases à cocher se génèrent par dessus la première case à cocher...

    Je n'arrive pas à comprendre pourquoi.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    Bonsoir,

    Voici un code qui fonctionne:

    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
    Sub Creation_bouton()
        Dim ws As Worksheet
        Dim ChkBx As CheckBox
     
        For Each ws In ThisWorkbook.Worksheets
            ws.Activate
            With Range("E1")
                Set ChkBx = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
            End With
            With ChkBx
                .Value = xlOff
                .Characters.Text = "2015"
                .OnAction = "cmdCacherAfficher_Click"
                'With .Border
                    '.LineStyle = xlLineStyleNone 'ou xlContinuous 'ou xlDashDot ou xlDashDotDot ou xlDot
                    '.ColorIndex = 3  'rouge
                    '.Weight = 4 'épaisseur du trait
                'End With
            End With
       Next ws
     
    End Sub
    Et, pour fignoler :

    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
    Private Function Creation_CheckBox(Emplacement As String, Texte As String, Programme As String)
        Dim ChkBx As CheckBox
        With Range(Emplacement)
            Set ChkBx = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
        End With
        With ChkBx
            .Characters.Text = Texte
            .OnAction = Programme
        End With
    End Function
     
    Sub Creation_boutons()
        Dim ws As Worksheet
        For Each ws In ThisWorkbook.Worksheets
            ws.Activate
            Call Creation_CheckBox("E1", "2015", "cmdCacherAfficher_Click")
            Call Creation_CheckBox("H1", "2014", "cmdCacherAfficher1_Click")
       Next ws
    End Sub
    A+

  3. #3
    Membre averti
    Homme Profil pro
    Agent administratif
    Inscrit en
    Octobre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent administratif
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 18
    Par défaut
    Merci beaucoup!
    @+

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

Discussions similaires

  1. [XL-2007] Probléme pour séléctionner une ligne sur trois dans une colonne
    Par ro31hg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2010, 20h48
  2. Réponses: 8
    Dernier message: 10/12/2009, 16h53
  3. Réponses: 0
    Dernier message: 24/02/2009, 04h36
  4. Problème pour réaliser une macro "de boucles" dans VBA
    Par philou7176 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2008, 15h41
  5. Réponses: 0
    Dernier message: 26/02/2008, 10h47

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