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 des CheckBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai Avatar de FouGa
    Femme Profil pro
    Retraitée
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 81
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut Utilisation des CheckBox
    Bonjour
    Pour une association , j'ai réaliser en VBA une UserBox avec TextBox et CheckBox pour la saisie des adhérents et le cochage par CheckBox des différentes activités. La saisie et la mise en place des différentes valeur ce passe très bien. mes codes fonctionne. Par contre, comme il y a de l'ordre de 400 adhérents, la recherche et la lecture des différents ligne est très difficile, surtout avec plus de 20 colonnes.
    Aussi, j'ai commencer à coder pour que 1 click sur une cellule "nom" ou "prénom" affiche dans les TextBox les éléments de l'identité de l'adhérents, cela fonctionne. Par contre, je n'arrive pas à Cocher les CheckBox en fonction de la valeur "1" ou "" des cellules correspondant au différentes case à cocher.
    Quelqu'un pourrais peut être me conseiller sur mon code. je doit faire une erreur, mais laquelle.

    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
        'n° téléphone fixe
        ADHERENT.TextBox6 = Cells(Target.Row, 6)
        'n° téléphone portable
        ADHERENT.TextBox7 = Cells(Target.Row, 7)
        ' adresse mail
        ADHERENT.TextBox8 = Cells(Target.Row, 8)
     
        ' cocher les chexbox si les cellules =1
        'carte Adh?rents
        If Cells(N_ligne, 9) = "1" Then
            CheckBox19 = True
        Else
            CheckBox19 = False
        End If
        'Danse salon
        If Cells(N_ligne, 10) = "1" Then
            CheckBox16 = True
        Else
            CheckBox16 = False
        End If
    voici un petit bout de mon code

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Bonjour FouGa,

    Peux-tu nous montrer la procédure complète ? (y compris le Sub & End Sub).

    J'ai vu que tu as mis un Target dans ton code, il est important que nous connaissions ses caractéristiques.

    Révèr

  3. #3
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Un exemple simple :

    Dans le module de la feuille ou sont les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Cells.Count = 1 Then          'SI une seule cellule sélectionnée
            If Target.Column = 1 Then           'SI la cellule est dans la colonne A
                Call AppelUserform(Target)      'On appelle la procédure qui affiche l'userform
            End If                              'Fin SI
        End If                                  'Fin SI
    End Sub
    Dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AppelUserform(Rng As Range)
        With UserForm1
            .TextBox1.Value = Rng.Value
            .TextBox2.Value = Rng.Offset(0, 1).Value
            .CheckBox1.Value = IIf(Rng.Offset(0, 2).Value = 1, True, False)
            .CheckBox2.Value = IIf(Rng.Offset(0, 3).Value = 1, True, False)
            .CheckBox3.Value = IIf(Rng.Offset(0, 4).Value = 1, True, False)
            .CheckBox4.Value = IIf(Rng.Offset(0, 5).Value = 1, True, False)
            .CheckBox5.Value = IIf(Rng.Offset(0, 6).Value = 1, True, False)
            .CheckBox6.Value = IIf(Rng.Offset(0, 7).Value = 1, True, False)
            .Show
        End With
    End Sub
    Classeur1.xlsm

    Un clic gauche en colonne A affichera l'Userform avec ses checkboxes cochées...

  4. #4
    Membre à l'essai Avatar de FouGa
    Femme Profil pro
    Retraitée
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 81
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut cochage checkbox automatique dans useform aprés double clicksur la feuiille "ADHERENTS
    bonjour à tous
    et merci de vos réponses même si cela ne marche pas, avec vos réponses, j'apprends!
    pour plus de clarté, je vous joint le code et l'image de l'userform.
    La je désir remplir les textbox et les checkbox de l'userform par un double-click sur les cellules des colonnes A ou B de la feuille "ADHERENTS"
    Cela bug à la ligne If Cells(N_ligne, 9) = "1" Then.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
        Dim noligne As Integer
        noligne = Range("A4:A65536").Find(n, lookat:=xlWhole).Row
     
     
        'Insertion des valeurs sur l'UserForm'nom
        ADHERENT.TextBox1 = Cells(Target.Row, 1)
        'pr?nom
        ADHERENT.TextBox2 = Cells(Target.Row, 2)
        'Adresse postal
        ADHERENT.TextBox3 = Cells(Target.Row, 3)
        'Code postal
        ADHERENT.TextBox4 = Cells(Target.Row, 4)
        'Ville
        ADHERENT.TextBox5 = Cells(Target.Row, 5)
        'n)t?l?phone fixe
        ADHERENT.TextBox6 = Cells(Target.Row, 6)
        'n?t?l?phone portable
        ADHERENT.TextBox7 = Cells(Target.Row, 7)
        ' adresse mail
        ADHERENT.TextBox8 = Cells(Target.Row, 8)
     
        'cocher les chexbox si les cellules =1
        'Adh?rents
        If Cells(N_ligne, 9) = "1" Then
            CheckBox19 = True
        Else
            CheckBox19 = False
        End If
        'Danse salon
        If Cells(N_ligne, 10) = "1" Then
            CheckBox16 = True
        Else
            CheckBox16 = False
        End If
        'dict?e petit salon
        If Cells(N_ligne, 11) = "1" Then
            CheckBox17 = True
        Else
            CheckBox17 = False
        End If
        'dict?e foyer rigole
        If Cells(N_ligne, 12) = "1" Then
            CheckBox4 = True
        Else
            CheckBox4 = False
        End If
        'M?moire petit bosquet
        If Cells(N_ligne, 13) = "1" Then
            CheckBox5 = True
        Else
            CheckBox5 = False
        End If
        'm?moire JBC
        If Cells(N_ligne, 14) = "1" Then
            CheckBox6 = True
        Else
            CheckBox6 = False
        End If
        'm?moire Rigole
        If Cells(N_ligne, 15) = "1" Then
            CheckBox7 = True
        Else
            CheckBox7 = False
        End If
        'Peinture
        If Cells(N_ligne, 16) = "1" Then
            CheckBox8 = True
        Else
            CheckBox8 = False
        End If
        'sophro Mardi
        If Cells(N_ligne, 17) = "1" Then
            CheckBox9 = True
        Else
            CheckBox9 = False
        End If
        ' sophro lundi
        If Cells(N_ligne, 18) = "1" Then
            CheckBox10 = True
        Else
            CheckBox10 = False
        End If
        'Ecriture
        If Cells(N_ligne, 19) = "1" Then
            CheckBox11 = True
        Else
            CheckBox11 = False
        End If
        ' Ecriture J
        If Cells(N_ligne, 20) = "1" Then
            CheckBox14 = True
        Else
            CheckBox14 = False
        End If
        ' Lecture Musicale
        If Cells(N_ligne, 21) = "1" Then
            CheckBox13 = True
        Else
            CheckBox13 = False
        End If
        'Astronomie
        If Cells(N_ligne, 22) = "1" Then
            CheckBox15 = True
        Else
            CheckBox15 = False
        End If
        ' D?clarer Administratif
        If Cells(N_ligne, 23) = "1" Then
            CheckBox18 = True
        Else
            CheckBox18 = False
        End If
     
        'ouvrir userform
        ADHERENT.Show
     
    End Sub
    Images attachées Images attachées  

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut
    Bonjour à tous,

    tu dois utiliser la même écriture pour les Checkbox que pour les Textbox :
    Exemple ci-dessous pour le 1er
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(Target.Row, 9) = "1" Then ADHERENT.CheckBox19 = True Else ADHERENT.CheckBox19 = False
    Tu as oublié de préciser le nom du formulaire, et autant utiliser toujours le Target.

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut
    Re Bonjour,

    Ce qui est dommage, c'est que si les 15 CheckBox numérotés de 1 à 15 se suivaient dans les colonnes de la feuille comme dans le formulaire, on arriverait à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 15
        If Cells(Target.Row, 8 + i) = "1" Then ADHERENT.Controls("CheckBox" & i) = True
    Next

  7. #7
    Membre à l'essai Avatar de FouGa
    Femme Profil pro
    Retraitée
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 81
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut utilisation CheckBox
    bonjour HopPopPop

    Je te remercie, car ta solution fonctionne à merveille.
    merci encore en merci aussi à tous car j'ai appris pas mal de chose en essayant, mais surtout regardant les divers code et ainsi apprendre.

    FouGa

  8. #8
    Membre à l'essai Avatar de FouGa
    Femme Profil pro
    Retraitée
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 81
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut
    Citation Envoyé par révèr Voir le message
    Bonjour FouGa,

    Peux-tu nous montrer la procédure complète ? (y compris le Sub & End Sub).

    J'ai vu que tu as mis un Target dans ton code, il est important que nous connaissions ses caractéristiques.

    Révèr

  9. #9
    Membre à l'essai Avatar de FouGa
    Femme Profil pro
    Retraitée
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 81
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut procédure compléte pour remplir dans l'UserForm "ADHERENTS" les TextBox et CheckBox par double-click
    Bonjour révèr, bonjour le forum
    suite à ton message, je te joint le cde complet.
    Merci pour ton message et à tous du forum pour leurs aides.

    Pièce jointe 549443Pièce jointe 549447

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

Discussions similaires

  1. [MySQL] La suppression de la BD en utilisant des checkbox
    Par sunatva dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/01/2009, 12h29
  2. Réponses: 2
    Dernier message: 11/08/2008, 11h05
  3. [VBA-E] Utilisation des classeurs fermés
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 26/09/2007, 15h57
  4. [VBA]comment utiliser des Variables avec Underscore ( _ )
    Par Oceliane dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/04/2007, 17h02
  5. Utilisation des Checkbox d'une feuille excel
    Par Abdex dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2007, 18h16

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