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 Access Discussion :

Donner valeur à une zone de texte en utilisant case à cocher [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut Donner valeur à une zone de texte en utilisant case à cocher
    Bonjour à toutes et à toutes,

    J'ai un formulaire pour gérer les cotisations d'adhérents d'une association

    J'ai des cases à cocher C10 à C35 pour valider les cotisations.
    J'ai des zones de textes Du10 à Du35 où apparaissent les valeurs des cotisations dues (par défaut=25)

    Dans une version précédente, j'avais par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub C10_BeforeUpdate(Cancel As Integer)
    If Me!C10.Value = True Then
    Me!Du10 = 0
    End If
    End Sub
    répété un grand nombre de fois ; c'est fastidieux à mettre en place

    Ainsi pour l'année 2018, j'ai la C18 qui n'est pas encore cochée.
    Quand on aura reçu la cotisation 2018, on cochera C18 et Du18 passera à 0

    Je cherche le code, appliqué une seule fois, qui me permettrait, quand je coche la case CXX de mettre à 0, la zone DXX.

    Merci de votre aide

    A+

    C15

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    C15 bonjour

    Sur chaque événement de tes cases à cocher tu fais appel à une private sub ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub C10_BeforeUpdate(Cancel As Integer)
     
        Call Change_Value
     
    End Sub
    Tu crées dans ton module une procédure privée Change_Value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Change_Value()
        If Me.ActiveControl = True Then
            newName = "DU" & Mid(Me.ActiveControl.Name, 2)
            Me(newName) = 0
        Else
            newName = "DU" & Mid(Me.ActiveControl.Name, 2)
            Me(newName) = -1
        End If
    End Sub
    Ainsi cette procédure va analyser le contrôle actif et appliquer la règle définie sur le champ Duxx correspondant au Cxx actif.

    Nom : Capture.JPG
Affichages : 133
Taille : 39,7 Ko

    Cldt
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Merci, cela fonctionne parfaitement

    A+

    c15

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour C15nantes, jimbolion,

    En complément de réponse à jimbolion il est possible en modifiant le sub en fonction (privée) donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Function Change_Value()
        If Me.ActiveControl = True Then
            newName = "DU" & Mid(Me.ActiveControl.Name, 2)
            Me(newName) = 0
        Else
            newName = "DU" & Mid(Me.ActiveControl.Name, 2)
            Me(newName) = -1
        End If
    End Function
    D'inscrire en une seule fois le code au lieu de le répéter dans tous les champs. On sélectionne tous les champs concerné et dans la feuilles des propriétés on colle la fonction comme suit:
    Nom : Capture.PNG
Affichages : 129
Taille : 13,2 Ko

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Function Change_Value()
         Me("DU" & Mid(Me.ActiveControl.Name, 2))= Not ActiveControl
    End Function

  6. #6
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Merci à tous pour vos contributions complémentaires et efficaces

    A+

    C15

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

Discussions similaires

  1. [AC-2007] Attribution de valeurs à une zone de texte
    Par glooping dans le forum IHM
    Réponses: 6
    Dernier message: 14/09/2009, 15h11
  2. Réponses: 8
    Dernier message: 22/09/2007, 17h32
  3. Affecter une valeur à une zone de texte
    Par Peanut dans le forum IHM
    Réponses: 6
    Dernier message: 11/12/2006, 18h14
  4. Compatibilité Ie/Mozilla (attribution d'une valeur à une zone de texte)
    Par dj_farfade dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/10/2006, 18h35
  5. [VBA-E]Affecter une valeur à une zone de texte
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2006, 09h26

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