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 :

Utilisation de case à cocher dans un fonction vb [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Points : 28
    Points
    28
    Par défaut Utilisation de case à cocher dans un fonction vb
    Bonjour,
    Ma question est quelqu'un sait-il s'il est possible de modifier l'état(coché ou décoché) d'une case à cocher via une focntion VB?
    Je ne parle pas de checkbox mais de case à cocher, quand j'appel une case à cocher j'ai une erreur 424 'objet inconu' alors que quand j'appel une checkbox tout se passe comme prévu.
    Mon problème est que je dois partir d'un fichier ou il y a déjà de très nombreuse case à cocher et que je n'ai pas trop envie de toutes les changer en checkbox...

    J'espère tout du moins qu'il est possible d’interagir avec du code vb sur une case à cocher. J'ai lu quelque part qu'il ne serait possible d’interagir que sur des checkbock. Est-ce vrai? Sinon quel nom de variable excel donne t'il par défaut à une case à cocher.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Effacertout()
    'KO : Cette ligne provoque une erreur 424 'objet inconu'
    Caseàcocher1.Value = False
    'OK : Cette ligne décoche la CheckBox
    CheckBox1.Value = False
    End Sub

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    En parlant de "Case à cocher" tu parle de celles issues de la boite "Contrôles Formulaire" déposés sur une feuille Excel ? Regarde si le code convient :
    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
     
    Sub Effacertout()
     
        Dim CaseACocher As Shape
     
        For Each CaseACocher In Worksheets("Feuil1").Shapes
     
            If CaseACocher.Type = msoFormControl Then
     
                CaseACocher.ControlFormat.Value = 0
     
            End If
     
        Next
     
    End Sub
    Hervé.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Points : 28
    Points
    28
    Par défaut
    Oui en effet vous avez raison, pour le type formulaire (case à cocher) et activeX (checkbox).
    J'ai essayé votre code qui me paraissait très bien mais malheureusement j'ai une erreur à l’exécution 438 'propriété ou méthode non gérée par cet objet'.
    pourtant vous testez le type d'objet. peux-etre un test supplémentaire est nécessaire mais je ne connais pas les différents champs de cet objet comment les trouver?

    cependant suite à l’exécution de votre fonction toutes les coches sont décochées mais un autre objet doit être identité à tord comme une case à cocher. Et du coup l'utilisateur doit ignorer cette erreur : un peu gênant...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Points : 28
    Points
    28
    Par défaut
    J'ai fini par trouver une solution :
    Ajouter un test sur le champ nom de la variable à cocher en plus du type.
    En effet chaque case à cocher semble avoir comme nom "Check Box N".
    Tester le type ne suffit pas car des boutons ou autre peuvent avoir ce même type et du coup générer une erreur.
    Merci pour votre aide.
    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
     
    Sub Effacertout()
     
        Dim CaseACocher As Shape
     
        For Each CaseACocher In Worksheets("Feuil1").Shapes
     
            If CaseACocher.Type = msoFormControl Then
     
                If CaseACocher.Name Like "Check Box*" Then
     
                    CaseACocher.ControlFormat.Value = 0
     
                End If
     
            End If
     
        Next
     
    End Sub

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/12/2008, 07h28
  2. Utilisation de case à cocher avec VB6 dans Datagrid
    Par seyiv dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/05/2007, 15h11
  3. Réponses: 24
    Dernier message: 24/11/2005, 10h28
  4. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 11h23
  5. Case à cocher dans une requête
    Par kloss dans le forum Access
    Réponses: 6
    Dernier message: 14/10/2004, 11h44

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