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

VBA Word Discussion :

Numéro du checkbox en variable


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Numéro du checkbox en variable
    Bonjour,

    Je souhaiterais créer un boucle pour checker/dechecker tous mes checkbox mais je ne trouve pas la bonne ligne de code.
    Mes checkbox sont sur une page word.
    Ce que j'aimerais au final c'est un truc du genre ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim i as Integer
    For i = 1 to 100
       if ("Checkbox" & i).checked = True Then
       CheckBox.Value = False
       End if
    Next i
    J'ai essayé plusieurs codes dont celui ci qui ne marche pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim ctl As Control
    Dim chk As CheckBox
     
    For Each ctl In Controls
      If TypeOf ctl Is CheckBox Then
        chk = ctl
        If chk.Checked Then chk.Name.Value = False
        End If
      Next ctl

    et ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For n = 1 To 100
            Me.Controls("CheckBox" & n).Value = False
    Next n
    Mais sans réussite. Avez vous une idée ?
    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tes CheckBox sont des champs de formulaire, des activeX ou des content controls ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Ce sont des ActiveX.
    Merci par avance !

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Il faut traiter les ActiveX comme des objets InLineShapes.

    Voilà un exemple de code qui traite les InLineShapes et renvoie certaines informations.
    Je pense que c'est une piste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ub TestSurActiveX()
    Dim ilS As InlineShape
     
    Debug.Print ActiveDocument.InlineShapes.Count
    For Each ilS In ActiveDocument.InlineShapes
     
    Debug.Print ilS.Field.Code & " --- " & ilS.Type
     
    Next ilS
     
     
     
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup pour ton aide !
    J'ai un peu cherché sur le net suite à tes conseils et j'ai trouvé ca qui marche dans les 2 cas :

    1) Décoche tous les checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each shapeLoop In ActiveDocument.InlineShapes
        With shapeLoop
     
            If .Type = wdInlineShapeOLEControlObject Then
                If .OLEFormat.ClassType = "Forms.CheckBox.1" Then
                    .OLEFormat.Object.Value = False
                End If
            End If
        End With
    Next
    2) Coche tous les checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each shapeLoop In ActiveDocument.InlineShapes
        With shapeLoop
     
            If .Type = wdInlineShapeOLEControlObject Then
                If .OLEFormat.ClassType = "Forms.CheckBox.1" Then
                    .OLEFormat.Object.Value = True
                End If
            End If
        End With
    Next
    Mais je ne comprends pas très bien la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If .OLEFormat.ClassType = "Forms.CheckBox.1" Then
    Que représente le 1 dans ce code ?


    Et donc questions suivantes :

    Comment puis-je écrire qqch comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CheckBox12.Value = True Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .OLEFormat.Object.Value = True Then
    Mais comment choisir le 12 ? Ou comment indiquer une variable pour représenter le 12 ?

    Comment récupérer la propriété Caption du CheckBox12 ?

    Désolé pour toutes ces questions mais merci encore !

Discussions similaires

  1. Insertion de lignes en fonction du numéro de lignes comme variable
    Par Rachi dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/12/2012, 11h18
  2. Checkbox et variables
    Par saxonac dans le forum Langage
    Réponses: 8
    Dernier message: 21/08/2011, 11h00
  3. Checkbox et variable tableau
    Par Kazevil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/11/2010, 16h54
  4. Mettre une checkbox en variable
    Par kev484 dans le forum Langage
    Réponses: 6
    Dernier message: 17/01/2008, 18h59
  5. Checkbox, nombre variable
    Par HwRZxLc4 dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2007, 19h59

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