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 :

Aide pour simplifier un code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut Aide pour simplifier un code
    Bonjour

    Faire une comparaison de 2 textbox par rapport à 2 tolérances avec affichage d'un label

    pour le moment
    je fais la comparaison sur la textbox1 avec la tolérance 1 et affiche le label conforme ou non-conforme
    je fais la comparaison sur la textbox2 avec la tolérance 2 et affiche le label conforme2 ou non-conforme2

    Voici 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
    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
     
    Private Sub UserForm_Initialize()
     
    Dim tol1, tol2 As Single
    tol1 = 95
    tol2 = 120
     
    txt1.Value = tol1
    txt2.Value = tol2
     
    labYes.Visible = False
    LabNo.Visible = False
    labYes2.Visible = False
    labNo2.Visible = False
     
    End Sub
    Private Sub txt3_AfterUpdate()
     
     
    If txt3.Value = "" Then
    labYes.Visible = False
    LabNo.Visible = False
    Exit Sub
    End If
     
    Dim tol1 As Single
    Dim val1 As Single
     
    tol1 = UserForm1.txt1.Value
    val1 = UserForm1.txt3.Value
     
     
        If val1 < tol1 Then
            LabNo.Visible = True
            labYes.Visible = False
        ElseIf val1 >= tol1 Then
            labYes.Visible = True
            LabNo.Visible = False
        End If
    End Sub
     
    Private Sub txt4_AfterUpdate()
     
     
    If txt4.Value = "" Then
    labYes2.Visible = False
    labNo2.Visible = False
    Exit Sub
    End If
     
    Dim tol2 As Single
    Dim val2 As Single
     
    tol2 = UserForm1.txt2.Value
    val2 = UserForm1.txt4.Value
     
     
        If val2 < tol2 Then
            labNo2.Visible = True
            labYes2.Visible = False
        ElseIf val2 >= tol2 Then
            labYes2.Visible = True
            labNo2.Visible = False
        End If
    End Sub
    Ce que je cherche a faire

    afficher le label "non conforme" ou " conforme" qu'une seule fois c'est a dire (comme la formule SI OU)

    Si textbox1 et textbox2 sont supérieur ou égale alors on affiche le label "conforme"
    Si textbox1 ou textbox2 sont conforme alors on affiche le label "non-conforme"
    si textbox1 et textbox2 sont non-conforme alors on affiche le label "non-conforme"

    et ne plus avoir besoin des label conforme2 et non-conforme2

    Voili voilou

    merci pour vos retour

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut et bienvenu sur le Forum,

    Utilise l'instruction Select Case avec pour argument la valeur booléenne True.
    Le code considèrera la première instruction vraie.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    comment peut-on raisonnablement écrire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Tol1 = usfPVTG.txt1.Value ' ---
                           '        | ----------->> donc Tol1 = val1
    val1 = usfPVTG.txt1.Value ' ---
     
        If val1 < Tol1 Then ' -------------------->> ne risque pas d'être le cas puisqu'égaux
            '......
        ElseIf val1 >= Tol1 Then ' -------------------->> ne risque pas d'être le cas puisqu'égaux
             '......
        End If
    End Sub
    Pas d'autre commentaire.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    comment peut-on raisonnablement écrire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Tol1 = usfPVTG.txt1.Value ' ---
                           '        | ----------->> donc Tol1 = val1
    val1 = usfPVTG.txt1.Value ' ---
     
        If val1 < Tol1 Then ' -------------------->> ne risque pas d'être le cas puisqu'égaux
            '......
        ElseIf val1 >= Tol1 Then ' -------------------->> ne risque pas d'être le cas puisqu'égaux
             '......
        End If
    End Sub
    Pas d'autre commentaire.
    une erreur de frappe
    je corrige le message

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut Unparia.

    je corrige le message
    D'accord, mais tu regardes du côté de Select Case comme indiqué précédemment.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Salut Unparia.



    D'accord, mais tu regardes du côté de Select Case comme indiqué précédemment.

    Je suis entrain ;-)

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    En fait ça ne change rien

    je suis toujours obligé d'utiliser labYes2 et labNo2

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Re

    on va commencer par être à la fois concis, succinct et clair :
    Commençons par le double tandem "interactif" txt1, txt3 et labno, labyes

    Si je regarde ton code j'en déduis que tu cherches à faire ce que résume ceci :
    labno ne doit être visible que si, à la fois, txt1 <> "", txt2 <> "", txt3 < txt1
    labyes ne doit être visible que si, à la fois, txt1 <> "", txt2 <> "", txt3 >= txt1

    Est-ce le cas ?
    Si oui, la réponse sera simple et tu verras que ce seul effort d'exposé du but est déjà à lui seul (comme c'est souvent le cas) le début de la solution, sinon la solution elle-même
    Si non, il va te falloir faire des efforts pour exposer précisément ce que tu veux

Discussions similaires

  1. [XL-2007] Besoin d'aide pour simplifier le code répétitif
    Par Nomorerulz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/05/2016, 22h41
  2. Aide pour simplifier un code et comprendre le mécanisme
    Par nicdodo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/04/2015, 15h50
  3. Aide pour simplifier code macros
    Par gatecrash182 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/08/2014, 18h16
  4. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15
  5. Je besoin d'aide pour terminer mon code
    Par Paulinho dans le forum C++
    Réponses: 7
    Dernier message: 06/11/2005, 23h30

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