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 :

Boucle sur certains textbox [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Par défaut Boucle sur certains textbox
    Bonjour,

    Je suis face au problème suivant : j'ai une liste déroulante. Si elle est égale à "oui", deux textbox apparaissent. L'utilisateur peut vérifier les données qu'il a entrées dans ces deux textbox en appuyant sur un bouton.
    Comment faire pour que les bordures apparaissent en rouge si la textbox est vide ? Si les deux sont vides, les deux ont les bordures rouge. Si une seule des deux est vide, seule les bordures de la vide a les bords rouge.

    J'ai énuméré les solutions possibles mais je voudrais passer par une boucle pour éviter d'énumérer toutes les solutions (même si pour le présent cas il n'y en a pas beaucoup).

    Merci

  2. #2
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    Bonjour ! Voici un exemple provenant de Microsoft

    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
    Sub Form_Current()
        Dim curAmntDue As Currency, lngBlack As Long
        Dim lngRed As Long, lngYellow As Long, lngWhite As Long
     
        If Not IsNull(Me!txtPastDue.Value) Then
            curAmntDue = Me!txtPastDue.Value
        Else
            Exit Sub
        End If
        lngRed = RGB(255, 0, 0)
        lngBlack = RGB(0, 0, 0)
        lngYellow = RGB(255, 255, 0)
        lngWhite = RGB(255, 255, 255)
        If curAmntDue > 100 Then
            Me!txtPastDue.BorderColor = lngRed
            Me!txtPastDue.ForeColor = lngRed
            Me!txtPastDue.BackColor = lngYellow
        Else
            Me!txtPastDue.BorderColor = lngBlack
            Me!txtPastDue.ForeColor = lngBlack
            Me!txtPastDue.BackColor = lngWhite
        End If
    Si tu possède seulement ces 2 textbox dans ton formulaire tu peut utiliser une boucle comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ctl As Control
     
    For Each ctl In Me.Controls
             If TypeOf ctl Is TextBox  Then
     
                      ctl.BorderColor = lngRed
     
             End If

  3. #3
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Citation Envoyé par robyseb Voir le message
    Si tu possède seulement ces 2 textbox dans ton formulaire tu peut utiliser une boucle comme celle-ci :
    Une astuce intéressante dans ce cas, c'est d'utiliser la propriété "Remarque" du contrôle. Ainsi, tu peux "isoler" certains contrôles sur lesquels tu désires effectuer un traitement en faisant un test supplémentaire. Pour ces deux zones de texte uniquement, tu renseignes la propriété "Remarque" avec par exemple "MFC" (pour mise en forme conditionnelle) et tu modifies légèrement le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim ctl As Control
    For Each ctl In Me.Controls
     
        If TypeOf ctl Is TextBox  Then
     
            If ctl.Tag = "MFC" Then        
     
                ctl.BorderColor = lngRed
     
            End If
     
        End If
     
    Next
    Domi2

  4. #4
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    merci pour l'astuce j'y avait pas pensée

  5. #5
    Membre éclairé
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Par défaut
    Bonjour,

    Merci pour les codes.

    Cependant le point qui me pose le plus problème n'est pas résolu

    En effet, les codes ne vérifient pas si les textbox sont vides ou pas.
    J'ai essayé avec "ctl.value" mais bien sûr ça ne marche pas

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNull(ctl.Value) Then
    ne fonctionne pas ?

    Domi2

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

Discussions similaires

  1. c# Boucle sur des textBox
    Par gmailex dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/05/2019, 05h27
  2. [AC-2010] boucle sur les textbox
    Par illight dans le forum IHM
    Réponses: 2
    Dernier message: 15/09/2014, 14h22
  3. Faire une boucle sur des labels ou textBox
    Par Actarusdu60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2008, 18h17
  4. faire une boucle for..next sur des textbox
    Par Actarusdu60 dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/11/2008, 21h51
  5. [VBA E] boucle sur textbox d'une userform
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/07/2006, 20h37

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