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 :

[Fonction]ecart entre 3 valeurs


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut [Fonction]ecart entre 3 valeurs
    bonjour

    j'ai besoin entre 3 valeurs de determiner l'ecart entre la plus petite et la plus grande

    une idee

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Avec autant d'informations tu vas avoir toute sorte de réponse sauf la bonne (enfin peut être...)
    Du genre
    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 Diff(val1 as integer, val2 as integer, val3 as integer)
     
    Dim min as Integer
    Dim max as Integer
     
    if val1 < val2 then
    min = val1
    max = val2
    else
    min = val2
    max = val1
    end if
    if min < val3 then
    if max < val3 then
    max = val3
    end if
    else
    min = val3
    end if
    debug.print "Différence : " max - min
     
    end sub

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    hello

    je precise (je debute)

    j'ai 3 valeurs : a1, b1, c1 nombres decimaux réels je voudrai calculer l'ecart entre les 3 valeurs
    les valeurs a1,b1,c1 sont rentrés
    l'ecart doit être calculé ds le meme formulaire

    merci

  4. #4
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    On débute tous un jour : mais je pense que depuis notre plus jeune age nous sommes capable d'énoncer un problème

    Alors, elles sont rentrées où ces valeurs ??
    De plus, tu fais bien de préciser que ce sont des nombres décimaux réels. Ce ne sont pas des entiers comme je l'ai écrit.
    Donc l'écart doit être affiché dans le formulaire ?? dans un champ texte ??

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    bjour kikof

    effectivement j'ai été un peu vite

    dans le formulaire, l'utilisateur rentre 3 valeurs numériques réelles dans trois champs numériques a,b,c réelles différents , je veux que dans ce même formulaire je veux calculer automatiquement et mémoriser l'écart entre ces trois valeurs dans un champ numérique réelle dénommé ecart
    Dans ce formulaire, j'ai deux séries de trois valeurs à chercher l'écart.

    j'ai compris qu'il fallait crééer une procédure sub avec
    -trois valeurs rentrantes a,b,c ; une valeur sortante ecart pour la 1ère série,
    - trois valeurs rentrantes d,e,f et ecart2 pour la deuxième série

    j'ai deux pb
    - que mettre dans cette procédure
    - commet l'appeler deux fois ?

    merci

  6. #6
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    L'astuce : tu utilises la formule dans la source d'un champ texte qui va récupérer le résultat.
    Tu passes en paramètre de ta formule la valeur des champs et le tour est joué.
    Dans le champ texte en source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
    Dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function CalculDiff(val1 as Variant, val2 as Variant, val3 as Variant) As Variant
        'Récupère le code ci-dessus
        CalculDiff = Max-Min
    End Function
    Tu répètes la création du champ texte et tu modifies unqiuement l'appel de la fonction dans la source du champ texte.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    hello

    merci

    j'ai aussi corrigé dim min as variant est ce exact ?

    je teste le reste

  8. #8
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Exact

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    j'au une erreur

    la syntaxe de l'expression entree n'est pas correcte lorsque j'attribue au champ indépendant ( dans le source controle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
    j'ai fait attention de bien declarer les variables comme des reels simples dans la table

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tu pourrais ajouter ces fonctions
    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
     
    Function maxi(ParamArray valeur() As Variant) As Variant
    Dim tempo As Variant
    Dim parcourt As Long
    parcourt = 0
    Do Until Not IsNull(valeur(parcourt))
    parcourt = parcourt + 1
    Loop
    tempo = valeur(parcourt)
    For parcourt = parcourt To UBound(valeur)
    If valeur(parcourt) > tempo Then tempo = valeur(parcourt)
    Next parcourt
    maxi = tempo
    End Function
     
    Function mini(ParamArray valeur() As Variant) As Variant
    Dim tempo As Variant
    Dim parcourt As Long
    parcourt = 0
    Do Until Not IsNull(valeur(parcourt))
    parcourt = parcourt + 1
    Loop
    tempo = valeur(parcourt)
    For parcourt = parcourt To UBound(valeur)
    If valeur(parcourt) < tempo Then tempo = valeur(parcourt)
    Next parcourt
    mini = tempo
    End Function
    auquel cas quel que soit le nombre de valeurs
    max(valeurs;valeurn)-min(valeur;valeurn) te donnera le nombre même si tu as 100 valeurs

  11. #11
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Citation Envoyé par lolothom
    j'au une erreur

    la syntaxe de l'expression entree n'est pas correcte lorsque j'attribue au champ indépendant ( dans le source controle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
    j'ai fait attention de bien declarer les variables comme des reels simples dans la table
    il y a une parenthèse en trop (copier-coller )

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    j'ai essaye :
    =CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3))

    toujours la meme erreur

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    bonsoir

    je n'ai pas compris ou je dois mettre
    max(valeurs;valeurn)-min(valeur;valeurn)
    ou
    =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)

  14. #14
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Mets ça dans la source du champ texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CalculDiff([Champ1];[Champ2];[Champ3])
    Si ça marche pas

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 278
    Par défaut
    HELLO

    ca marche pour votre fonction §!!!!!!!!!!!!!!!!!!!!!!

    comme je suis en train d'apprendre comment je passe avec les arguments de la deuxieme fonction
    max(valeurs;valeurn)-min(valeur;valeurn)

Discussions similaires

  1. Ecart entre 2 valeurs de temps sous excel 2000
    Par wabo67 dans le forum Excel
    Réponses: 5
    Dernier message: 17/03/2011, 20h25
  2. [XL-2007] Fonction SI entre valeurs
    Par superthx dans le forum Excel
    Réponses: 2
    Dernier message: 02/03/2011, 14h59
  3. Decouper un tableau par rapport aux ecarts entre valeurs
    Par yoloosis dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 02/03/2010, 17h32
  4. Réponses: 5
    Dernier message: 27/08/2009, 22h18

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