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

Word Discussion :

Case à cocher - contrôle ActiveX [WD-2016]


Sujet :

Word

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Case à cocher - contrôle ActiveX
    Bonjour,
    J'ai un document Word avec plusieurs cases à cocher lorsque je clique sur la case 1 d'autres cases se cochent.
    La fonction ci-dessous fonctionne parfaitement.
    Or je souhaiterais plutôt que de devoir répéter chaque checkbox pouvoir les grouper de "checkbox2 à checkbox4 = True" par exemple.
    Est ce possible ? quelqu'un pour m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CheckBox1_Click()
        If CheckBox1.Value = True Then
        CheckBox2.Value = True
        CheckBox3.Value = True
        CheckBox4.Value = True
        Else
        CheckBox2.Value = False
        CheckBox3.Value = False
        CheckBox4.Value = False
        End If
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emi1988 Voir le message
    Bonjour,

    A tester :
    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
     
    Private Sub CheckBox1_Click()
     
    Dim I As Integer, J As Integer
    Dim MaListeDeCheckbox As Variant
    Dim DocEnCours As Document
     
        Set DocEnCours = ActiveDocument
     
        With DocEnCours
     
               MaListeDeCheckbox = Array("CheckBox2", "CheckBox3", "CheckBox4")
               For I = LBound(MaListeDeCheckbox) To UBound(MaListeDeCheckbox)
                   For J = 1 To .InlineShapes.Count
                       With .InlineShapes(J)
                            If .OLEFormat.Object.Name = MaListeDeCheckbox(I) Then
                               .OLEFormat.Object = CheckBox1
                               'Debug.Print .OLEFormat.Object.Name & " : " & .OLEFormat.Object
                            End If
                        End With
                    Next J
                Next I
     
        End With
     
        Set DocEnCours = Nothing
     
    End Sub

  3. #3
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Merci
    Merci pour la réponse rapide.
    Le code fonctionne, mais si j'ai 50 cases à cocher il me faudra toutes les nommer "MaListeDeCheckbox = Array("CheckBox2", "CheckBox3", "CheckBox4"....)" ?
    N'existe t-il pas un code pour indiquer CheckBox2 à CheckBox40 ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emi1988 Voir le message
    Merci pour la réponse rapide.
    Le code fonctionne, mais si j'ai 50 cases à cocher il me faudra toutes les nommer "MaListeDeCheckbox = Array("CheckBox2", "CheckBox3", "CheckBox4"....)" ?
    N'existe t-il pas un code pour indiquer CheckBox2 à CheckBox40 ?
    Si votre liste de checkbox est continue de 2 à 50, il suffit de boucler sur chaque inlineshape de type 5 sauf Checkbox1. Dans ce cas, la matrice MaListeDeCheckbox est inutile.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    J'ai tenté avec ce code mais rien ne se passe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CheckBox1_Click()
    Dim I As Integer
    Dim name As String
    name = "CheckBox" & I
     
    If CheckBox1 = True Then
    For I = 2 To 5
    name = True
    Next I
    End If
    End Sub
    Je ne vois pas où est l'erreur.
    Quelqu'un pour m'aider ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emi1988 Voir le message
    Essayez :
    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
     
    Private Sub CheckBox1_Click()
     
    Dim J As Integer
    Dim DocEnCours As Document
     
        Set DocEnCours = ActiveDocument
        With DocEnCours
             For J = 1 To .InlineShapes.Count
                 With .InlineShapes(J)
                      Select Case Mid(.OLEFormat.Object.Name, 9)
                             Case 2 To 50
                                  If Mid(.OLEFormat.Object.Name, 1, 8) = "CheckBox" Then
                                     .OLEFormat.Object = CheckBox1
                                     'Debug.Print .OLEFormat.Object.Name & " : " & .OLEFormat.Object
                                  End If
                       End Select
                 End With
              Next J
        End With
        Set DocEnCours = Nothing
     
    End Sub

  7. #7
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Un grand merci
    Super cela fonctionne parfaitement, merci beaucoup

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 22/03/2014, 15h24
  2. Contrôle de formulaire : case à cocher
    Par Mat32 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2013, 10h16
  3. Réponses: 12
    Dernier message: 14/12/2008, 12h17
  4. Réponses: 7
    Dernier message: 02/10/2007, 14h07
  5. Case à cocher et valeur contrôle
    Par fazz dans le forum Access
    Réponses: 1
    Dernier message: 26/10/2005, 12h00

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