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 :

Cochage / décochage de CheckBox [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut Cochage / décochage de CheckBox
    Bonjour, j'aimerais réaliser, pour mon formulaire, un système de cochage et décochage de cases automatique.

    J'explique : dans mon formulaire, j'ai plusieurs onglets, un pour ajouter les membres, un autre pour modifier leurs informations, un autre pour en supprimer et encore un autre pour les trouver.
    Lorsque l'on ajoute quelqu'un à ma liste de membres, on doit cocher certaines cases, dans un tableau excel est notifié si telle ou telle case est cochée grâce à un "OUI" dans une cellule.
    Du coup, j'aimerais me servir de ce même "OUI" pour pouvoir rafficher les cases qui sont cochées ou non dans le formulaire.

    J'utilise pour l'instant une technique qui me semble marcher, mais pas totalement, je pense que cela vient de mon code, j'aimerais donc que quelqu'un puisse le corriger :

    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
    For n = 1 To Worksheets("bdd").Range("A65536").End(xlUp).Row
                If Worksheets("bdd").Cells(n, 2) = nom And Worksheets("bdd").Cells(n, 3) = prenom Then
                    MsgBox "DETECTION : OK"
                    'TxtAdr2 = Range("" & n).Value
                    TxtDate2 = Range("D" & n).Value
     
                    For i = 0 To 5
                        Me.Controls("ChkM" & i).Value = Val(Replace(UCase(Trim("" & Range("A1").Offset(0, i - 1))), "OUI", 1))
                    Next i
     
                    TxtDateCarte2 = Range("G" & n).Value
     
                    If Range("F" & n).Value = "Femme" Then
                        OptFM = True
                    Else
                        OptHM = True
                    End If
     
                End If
            Next n
    C'est juste la partie affichage des cases, si vous avez besoin de plus demandez-moi et j'hébergerais le tableau, il y a 6 cellules par lignes correspondant à si la case est cochée ou non, il y a donc 6 cases présentes dans un frame.
    PS : Les MsgBox ne sont pas utiles, j'essayais de m'en servir de façon à me repérer.

    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 3
        Me.Controls("CheckBox" & i).Value = Val(Replace(UCase(Trim("" & Range("A1").Offset(0, i - 1))), "OUI", 1))
    Next

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    Désolé mais, je ne comprends pas bien la deuxième partie du code, peux-tu m'expliquer s'il te plait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val(Replace(UCase(Trim("" & Range("A1").Offset(0, i - 1))), "OUI", 1))
    En sâchant que les cases dans lesquelles mes CheckBox sont renseignées commencent à i+8, je ne comprends que le "OUI" ici.

  4. #4
    Invité
    Invité(e)
    Par défaut
    si dans ta cellule tu as oui, replace le transforme en 1 et 1=true.
    si dans ta cellule tu as toto ou rien replace ne fait rien et val("toto")=0 = false!

    je remet ton code initial car les internaute ne vont rien comprendre!
    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
     
    '        For n = 1 To Worksheets("bdd").Range("A65536").End(xlUp).Row
    '            If Worksheets("bdd").Cells(n, 2) = nom And Worksheets("bdd").Cells(n, 3) = prenom Then
    '                MsgBox "DETECTION : OK"
    '                'TxtAdr2 = Range("" & n).Value
    '                TxtDate2 = Range("D" & n).Value
    '
    '                For i = 0 To 5
    '                    If IsEmpty(Cells(n, i + 8).Value) = False Then
    '                        MsgBox i
    '                        Frame4(i) = True
    '                        MsgBox Cells(n, i + 8).Value
    '                    Else
    '                        MsgBox i
    '                        MsgBox "NON"
    '                    End If
    '                Next i
    '            End If
    '        Next n

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    Vraiment désolé mais je ne comprends vraiment pas.. ^^'
    Sur ma ligne, j'ai des colonnes vides et d'autres colonnes remplies avec "OUI", ce sont ces mêmes colonnes que je veux utiliser pour remplir mes CheckBox. Je veux , dans mon formulaire, que si un "OUI" est présent alors la case se remplit.

    Veux-tu un screen de mon formulaire?

    Voici comment se présente mon tableau :

    Nom : screen2.png
Affichages : 291
Taille : 26,5 Ko

    En quoi consiste le "replace", le "A1"?.. :/

  6. #6
    Invité
    Invité(e)
    Par défaut
    on est bien d'accord, les cellule vide seront bien à false!

    debug .print Val(Replace(UCase(Trim("" & Worksheets("bdd").Range("M6")), "OUI", 1)) égale 0 égale False!

    [A1] est la cellule de base Range("A1").Offset(5,12)=M6

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

Discussions similaires

  1. Cochage automatique de CheckBox
    Par audrey1912 dans le forum ASP
    Réponses: 9
    Dernier message: 31/05/2011, 10h31
  2. Probleme de cochage automatique de checkbox
    Par nuFox dans le forum IHM
    Réponses: 3
    Dernier message: 17/12/2008, 13h29
  3. Décochage de checkbox
    Par Troyesse dans le forum Struts 1
    Réponses: 5
    Dernier message: 23/10/2007, 21h46
  4. Griser un champ text suivant le cochage d'une checkbox
    Par Seb981 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 10/08/2007, 16h47
  5. Cochage de plusieurs checkbox
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/03/2005, 10h30

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