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 :

Création d'un clignotant dans Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Par défaut Création d'un clignotant dans Excel
    bonjour à tous,

    je tiens à préciser j'ai juste les bases d'excel alors soyez indulgents si je ne comprends pas tout directement .

    voici mon probleme. je dois creer une application de mesure qui recuperee les données d'un capteur et qui en fonction des valeurs lues, fait clignoter une "led".
    j'ai créé un userform sur excel avec un bouton , une zone de texte sur laquelle je récupère la valeur de mon capteur et une zone de texte qui me sert de Clignotant led.
    pour une valeur attendue G = C*pas de mesure. je calcule la limite inférieur ininf= G*0.9 et une limite superieur insup=G*1.1
    la valeur lue est C2.
    l'objectif pour moi est d'ecrire :
    Si C2 > insup ma case "Led" est rouge ,
    si C2 < ininf ma case "led" est jaune
    Si ininf <C2 < insup ma case "led" est verte

    quand je change ininf et insup par une valeur pour tester ma fonction, tout se passe bien mais des que je remet ma variable, la fonction ne passe plus alors que les valeurs de chaque parametres sont bonnes. quelqu'un pourrait t'il m'aider à comprendre ce qui ne fonctionne pas?
    le code que j'ai écris sur mon bouton est le suivant:

    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
    Private Sub CommandButton1_Click()
    pas = 0.5
    C = 60
    C2 = cap2.Text
    G = C * (1 + pas)
     
    insup = G * 1.1
    ininf = G * 0.9
     
    MsgBox C2 & vbNewLine & ininf & vbNewLine & insup
     
    If C2 > insup Then
    MsgBox "superieur"
    L2.BackColor = &HC000&
     
    Else
        If insup >= C2 Then
        MsgBox "inferieur"
        L2.BackColor = &HFFFF&
     
        Else
            If ininf < C2 <= insup Then
            MsgBox "compris entre"
            L2.BackColor = &HC000&
            End If
        End If
     
    End If
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir dans la FAQ ?

  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
    Et si on parlait logique, avant même de parler informatique ?
    Regarde --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If C2 > insup Then ' 1)
    '.......
     
    Else '2)     c'est donc que C2 <= insup c'est à dire ce que dit ta ligne suivante ...
     If insup >= C2 Then ' pardi. Que pourrait-il être d'autre ?
     '.....
     Else ' sinon quoi ? Il est forcément 1) ou 2) -->> et tout ce qui suit est donc ignoré
       If ininf < C2 <= insup Then
            '......
       End If
     End If
     
    End If
    Alors évidemment ....

  4. #4
    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
    Alors ?
    1) tu commences par compléter ceci :
    Si C2 > insup ma case "Led" est rouge ,
    si C2 < ininf ma case "led" est jaune
    Si ininf <C2 < insup ma case "led" est verte
    Où l'on ne voit pas ce que tu veux faire :
    -si C2 = insup
    - si C2 = ininf
    2) tu ouvres ton aide interne VBA à la rubrique Select Case, instruction ==>> tu lis, ainsi que l'exemple qui l'accompagne ==> tu l'utilises (c'est vraiment très simple) avec un "select case C2".

    PS : tu vas probablement me dire qu'il fallait savoir qu'existait cette instruction Select Case ===>> et je te répondrai alors ceci :
    La rubrique Utilisation d'instructions If...Then...Else (puisque tu as utilisé cette instruction-là) affiche ceci, dès sa première phrase :
    L'instruction If...Then...Else permet d'exécuter une instruction spécifique ou un bloc d'instructions, selon la valeur d'une condition. Les instructions If...Then...Else peuvent être imbriquées au nombre de niveaux désiré. Cependant, pour favoriser la lisibilité du code, il est préférable d'utiliser une instruction Select Case plutôt que plusieurs niveaux d'instruction If...Then...Else imbriqués.
    Tu vois le temps que tu aurais gagné ?

    Ne vois s'il te plait aucun reproche dans ce message. Il se veut simplement l'indication d'une méthode de travail/recherche qui te permettrait d'être bien plus performante et indépendante.

  5. #5
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Par défaut
    Pour repondre :
    R-1) effectivement ça manquait de précision dans le code. Partons du postulat
    Si C2 > insup ma case "Led" est rouge , ou 1
    si C2 < ininf ma case "led" est jaune ou 2
    Si ininf <= C2 <= insup ma case "led" est verte ou 3

    R-2) effectivement le temps, c'est l’expérience ( et l'organisation aussi )

    Du coup pour revenir à mes essais. voici comment j'ai structuré le code et les résultats:

    code avec des valeurs ==> test ok pour C= 60 81 88 90 103
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    If C2 > 90 Then
    MsgBox "superieur"
    coteattendue.Text = "1"
    Else
        If C2 < 81 Then
        MsgBox "inferieur"
        coteattendue.Text = "3"
        Else
        MsgBox "compris entre"
        coteattendue.Text = "2"
        End If
     
    End If
    code sans variable ==> test non ok. pour toutes les valeurs de tests j'ai "rouge / 1",
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    If C2 > insup Then
    MsgBox "superieur"
    coteattendue.Text = "1"
    Else
        If C2 < ininf Then
        MsgBox "inferieur"
        coteattendue.Text = "3"
        Else
        MsgBox "compris entre"
        coteattendue.Text = "2"
        End If
    End If

    Code avec variable et fonction select case ,test non ok. pour toutes les valeurs de tests j'ai "rouge / 1",
    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
     
    Select Case C2
     Case Is > insup
     coteattendue.Text = "1"
     'L2.BackColor = &HFF&
     
     Case ininf To insup
     coteattendue.Text = "2"
     'L2.BackColor = &HFFFF&
     
     Case Is < ininf
     coteattendue.Text = "3"
     'L2.BackColor = &HC000&
     
     End Select
    je me demande s'il n’y a pas un problème de déclaration de variable parce que je suis toujours bloquée au même endroit

    Citation Envoyé par unparia Voir le message
    Alors ?
    1) tu commences par compléter ceci :

    Où l'on ne voit pas ce que tu veux faire :
    -si C2 = insup
    - si C2 = ininf
    2) tu ouvres ton aide interne VBA à la rubrique Select Case, instruction ==>> tu lis, ainsi que l'exemple qui l'accompagne ==> tu l'utilises (c'est vraiment très simple) avec un "select case C2".

    PS : tu vas probablement me dire qu'il fallait savoir qu'existait cette instruction Select Case ===>> et je te répondrai alors ceci :
    La rubrique Utilisation d'instructions If...Then...Else (puisque tu as utilisé cette instruction-là) affiche ceci, dès sa première phrase :

    Tu vois le temps que tu aurais gagné ?

    Ne vois s'il te plait aucun reproche dans ce message. Il se veut simplement l'indication d'une méthode de travail/recherche qui te permettrait d'être bien plus performante et indépendante.

  6. #6
    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,

    Dans ton Select Case, C2 est de type String.
    Il te faut, pour pouvoir comparer avec une valeur numérique, la transformer en numérique :

  7. #7
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Par défaut
    ahah effectivement c'est un copié merdé

    Citation Envoyé par unparia Voir le message
    Bonjour
    Et si on parlait logique, avant même de parler informatique ?
    Regarde --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If C2 > insup Then ' 1)
    '.......
     
    Else '2)     c'est donc que C2 <= insup c'est à dire ce que dit ta ligne suivante ...
     If insup >= C2 Then ' pardi. Que pourrait-il être d'autre ?
     '.....
     Else ' sinon quoi ? Il est forcément 1) ou 2) -->> et tout ce qui suit est donc ignoré
       If ininf < C2 <= insup Then
            '......
       End If
     End If
     
    End If
    Alors évidemment ....

  8. #8
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Par défaut
    merci pour le tuyau mais je voulais faire clignoter un élément texte dans un userform et non pas dans une cellule

    Citation Envoyé par kiki29 Voir le message
    Salut, voir dans la FAQ ?

  9. #9
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re, et alors le principe est le même, sinon en t'inspirant de ce timer, ne t'attend pas à du tout cuit.

  10. #10
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut

    Peux-tu poster les déclarations et ce que tu places dans insup et ininf stp

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Création des champs déroulants dans excel 2013
    Par MSAIDIE dans le forum Excel
    Réponses: 1
    Dernier message: 19/02/2017, 11h51
  2. Création d'une liste dans excel avec VBA
    Par MrcRafale dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/06/2016, 17h09
  3. [XL-2003] Création d'un bouton dans excel
    Par korni184 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/02/2012, 16h55
  4. Création d'une macro dans excel
    Par shawn69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2010, 10h13
  5. Fond de celulle clignotant dans excell
    Par Bricoltou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/01/2010, 20h52

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