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 :

Fonction avec variable ne marchant pas


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Fonction avec variable ne marchant pas
    Bonjour a tous. Je soushaite creer une fonction qui me permette de traduire cela:

    Si T inférieur ou égale à 7 (noté Tl) et H supérieur à 1.2 (noté Hl1) , alors écrire dans la case active "arret de chantier"
    Si T supérieur à 7 et H supérieur à 1.5 (noté Hl2) , alors écrire dans la case active "arret de chantier"
    Sinon écrire dans la case active "méteo ok"

    Soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function arr(T, H, Tl, Hm1, Hm2)
     
        If T <= Tl And H > Hm1 Then
            arr = ActiveCell.Value = "ARRET DE CHANTIER"
     
        ElseIf T >= Tl And H > Hm2 Then
            arr = ActiveCell.Value = "ARRET DE CHANTIER"
     
        Else
           arr = ActiveCell.Value = "METEO CONVENABLE"
     
    End If
     
    End Function
    Mlaheureusement l'ordianateur me renvoit 0 comme valeur quelque soit les variable , de plus il m'indique que j ai des donné circulaire ... Est ce que vous auriez une id de ce qui beug ? svp

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    De ce que j'ai compris tu essayes d'écrire dans ta cellule active et de renvoyer ce que tu as écris via une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Function arr(T, H, Tl, Hm1, Hm2) As String
    Toujours indiquer le type de la variable que tu renvois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arr = ActiveCell.Value = "ARRET DE CHANTIER"
    C'est à cause de ce genre de le ligne que tu as des données circulaires, un pro pourra t'expliquer clairement ce que ceci veut dire (et me l'expliquer au passage ).

    Essaye plutôt de cette façon :

    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
    Function arr(T, H, Tl, Hm1, Hm2) As String
     
        If T <= Tl And H > Hm1 Then
             ActiveCell.Value = "ARRET DE CHANTIER"
     
        ElseIf T >= Tl And H > Hm2 Then
            ActiveCell.Value = "ARRET DE CHANTIER"
     
        Else
           ActiveCell.Value = "METEO CONVENABLE"
     
    End If
     
        arr = ActiveCell.Value
     
    End Function

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 803
    Points
    5 803
    Par défaut
    Bonjour,

    essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function arr(T, H, Tl, Hm1, Hm2)
     
        If T <= Tl And H > Hm1 Then
            arr = "ARRET DE CHANTIER"
     
        ElseIf T >= Tl And H > Hm2 Then
            arr = "ARRET DE CHANTIER"
     
        Else
           arr = "METEO CONVENABLE"
     
    End If
     
    End Function
    Quand tu écris ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arr = ActiveCell.Value = "METEO CONVENABLE"
    VBA lis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arr = (ActiveCell.Value = "METEO CONVENABLE")
    Donc il teste l'égalité entre ta cellule active et le texte que tu met, et te renvoie le booléen associé (0 pour false)

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Est-ce que T, H, Tl, Hm1 et Hm2 sont des cellules?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function arr(T As Range, H As Range, Tl As Range, Hm1 As Range, Hm2 As Range) As String
        If T <= Tl And H > Hm1 Then
            arr  = "ARRET DE CHANTIER"
        ElseIf T >= Tl And H > Hm2 Then
            arr = "ARRET DE CHANTIER"
        Else
           arr = "METEO CONVENABLE"
    End If
    End Function

  5. #5
    Candidat au Club
    Femme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour ces explication je comprend mieux ces erreur

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    Si T inférieur ou égale à 7...
    Si T supérieur à 7...
    ce traduit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if T>7 then
     
    else
     
    end if
    Si T supérieur à 7 et H supérieur à 1.5 (noté Hl2) , alors écrire dans la case active "arret de chantier"
    Sinon écrire dans la case active "méteo ok"

    ce traduit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    écrire dans la case active "méteo ok"
    if T>7 then
       if H>1.5 then --> écrire dans la case active "arret de chantier"
    else
     
    end if
    Si T inférieur ou égale à 7 (noté Tl) et H supérieur à 1.2 (noté Hl1) , alors écrire dans la case active "arret de chantier"

    ce traduit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    écrire dans la case active "méteo ok"
    if T>7 then
       if H>1.5 then --> écrire dans la case active "arret de chantier"
    else
       if H>1.2 then --> écrire dans la case active "arret de chantier"
    end if
    une variante pour "méteo ok"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    écrire dans la case active ""
    if T>7 then
       if H>1.5 then --> écrire dans la case active "arret de chantier"
    else
       if H>1.2 then --> écrire dans la case active "arret de chantier"
    end if
     
    si case active "" alors écrire dans la case active "méteo ok"
    @+JP

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 803
    Points
    5 803
    Par défaut
    Citation Envoyé par EvaMa Voir le message
    Je t ai joint mon fichier excel au cas ou tu aurais le temps de jeter un coup d'oeil, la case concerné est surligné en jaune et ce situe dans l'onglet en jaune
    Peu de gens ouvrent les pieces jointes, surtout avec macro, notamment pour les raison citées ici: https://www.developpez.net/forums/d8...s-discussions/

    Tu auras plus de réponses en affichant un imprim'écran.

  8. #8
    Candidat au Club
    Femme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci a tous la fonction marche

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

Discussions similaires

  1. binding avec combobox ne marchant pas
    Par Invité dans le forum Silverlight
    Réponses: 3
    Dernier message: 02/01/2012, 09h43
  2. fonction avec variable symbolique
    Par rafrouf2010 dans le forum MATLAB
    Réponses: 0
    Dernier message: 15/04/2011, 11h42
  3. Réponses: 3
    Dernier message: 20/01/2011, 10h33
  4. ma fonction avec FTP ne fonctionne pas
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 01/09/2007, 23h51
  5. Feuille de style avec Hover ne marchant pas avec IE
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 06/03/2006, 16h10

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