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 :

Mise à jour Checkbox à chaque click dans COMBOBOX


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Par défaut Mise à jour Checkbox à chaque click dans COMBOBOX
    Bonjour,

    Ci-joint une partie du projet de réalisation d'un questionnaire:

    Lorsque je clique sur un nom de ma combobox, tous les champs de mon formulaire viennent se mettre à jour en fonction du choix effectué.

    Tous SAUF la zone situation familiale "Vivez-vous" regroupant 5 checkbox (dont deux max autorisées => géré par module de classe "classesaisie")


    Plus précisément à chaque lancement du formulaire , je sélectionne un nom et là pas de souci cela me coche bien les checkbox concernée, mais si j'enchaine et clique sur un 2ème nom( sans fermer formulaire), cette zone "vivez-vous" reste sur le 1er choix.

    J'ai du mal coder à un endroit et c'est pour ça que je fais appel a vous...
    Merci d'avance...
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Je pense qu'il est préférable de décocher toutes les CheckBox pour ensuite les cocher en fonction des valeurs récupérées :
    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
     
    'mets d'abords les contrôles à False
    For I = 1 To 5
        Me.Controls("CheckBox" & I).Value = False
    Next I
    'puis les coches en fonction...
    Select Case Sheets("BASE REGISTRES ORL").Cells(ligne, 7)
       Case "Seul"
           Me.CheckBox1 = True
       Case "En Couple"
           Me.CheckBox2 = True
       Case "Sans Enfant"
           Me.CheckBox3 = True
       Case "Avec Enfant(s) en jeune âge (<18 ans)"
           Me.CheckBox4 = True
        Case "Avec grand(s) enfant(s)"
           Me.CheckBox5 = True
     End Select
    Hervé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Par défaut
    merci pour ta réponse malheureusement cela ne résoud pas le problème.

    En pièce jointe, j'ai remis à jour le formulaire et à la question 12) .
    contenant que des checkbox....
    1 ) l'ajout se fait bien dans les bonnes cellules en fonction des choix cochés
    2 ) Lors du choix du nom dans la combobox, aucun checkbox se mettent à jour alors que des données sont saisies dans les cellules correspondantes.
    3) Pire quand je coche un choix pour mettre à jour, les cellules ne se mettent pas à jour.



    help!!!
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour Spanish_

    Utilise l'événement Click des CheckBox pour affecter les autres CheckBox :

    Exemple :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Sub CheckBox1_Click()
     
    If CheckBox1.Value = True Then
    CheckBox2.Value = False
    CheckBox3.Value = False
    CheckBox4.Value = False
    CheckBox5.Value = False
    End If
    End Sub
     
     
    Private Sub CheckBox2_Click()
     
    If CheckBox2.Value = True Then
     CheckBox1.Value = False
    End If
    End Sub
     
    Private Sub CheckBox3_Click()
     
    If CheckBox3.Value = True Then
    CheckBox4.Value = False
    CheckBox5.Value = False
    End If
    End Sub
     
    Private Sub CheckBox4_Click()
     
    If CheckBox4.Value = True Then
    CheckBox5.Value = False
    CheckBox3.Value = False
    End If
    End Sub
     
    Private Sub CheckBox5_Click()
     
    If CheckBox5.Value = True Then
    CheckBox4.Value = False
    CheckBox3.Value = False
    End If
    End Sub
    Et recommence la procédure b_modification_Click.

    Attention aux erreurs genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Case "Voiture"
         Me.CheckBox8 = True
        Case "Extérieur calme"
          Me.CheckBox8 = True

    Cordialement

    Docmarti

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Par défaut
    Merci effectivement j'ai corrigé mon erreur.

    Par rapport à ta solution , sachant que le reste du formulaire contient de nombreuses questions à plusieurs Checkbox, je me vois mal faire un private sub Checkbox clik à chaque checkbox..

    y ' a t il une solution moins lourde!

    mais merci quand meme

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par Spanish_ Voir le message
    Par rapport à ta solution , sachant que le reste du formulaire contient de nombreuses questions à plusieurs Checkbox, je me vois mal faire un private sub Checkbox clik à chaque checkbox..

    y ' a t il une solution moins lourde!
    Selon mon expérience, c'est la solution la moins lourde, la plus simple et la plus pratique, car celui qui fait un choix sur un Checkbox en voit aussitôt l'effet sur les autres CheckBox. Et ça simplifie beaucoup le travail du programmeur.

    Mais c'est toi qui sais si c'est ou non la meilleure façon de faire dans ce programme.

    Cordialement

    Docmarti

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2006, 16h16
  2. mise à jour d'un champ dans un formulaire
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/03/2006, 08h10
  3. mise à jour d'un champ dans un formulaire
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/03/2006, 19h42
  4. mise à jour de champ monétaire dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/08/2005, 11h49
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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