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

Access Discussion :

Utilisation de la fonction si en VBA


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 170
    Points : 74
    Points
    74
    Par défaut Utilisation de la fonction si en VBA
    Bonjour la compagnie ,
    Me revoilà avec un nouveau souci .
    je vais essayer d’être le plus clair possible .je cherche a écrire un code vba que je mettrais sous une procédure événementielle et qui puisse me donner ce qui suit
    1- j'entre une valeur A
    2- j entre une valeur B

    le code devra déterminer si x<A<Y et si x1<B<y1 donc la valeur C= d

    les valeur x,y,x1,y1 sont des limites d'un intervalle déterminé

    exemple si 0.25<A<=+4.00 et si -6.00<B<+6.00 donc C=100

    ce test devra se répéter jusqu’à vérification de la condition car il existe plusieurs cas .

    j’espère que ce n'est brouillon car dans ma tète ça l'est.

    si besoin est de vous fournir l 'ensemble des conditions faite le moi savoir
    Cordialement

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

    voici déjà 3 solutions :
    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
     
    Public Function Test1(ByVal A As Double, ByVal B As Double) As Double
    Dim Res As Double
    If A > 0.25 And A <= 4 And B > -6 And B <= 6 Then
        Res = 100
    ElseIf A > 4 And A <= 7 And B > 6 And B <= 9 Then
        Res = 200
    End If
    Test1 = Res
    End Function
     
     
    Public Function Test2(ByVal A As Double, ByVal B As Double) As Double
    Dim Res As Double, i As Long, c As Variant
    c = Array(0.25, 4, -6, 6, 100, 4, 7, 6, 9, 200)
    For i = LBound(c) To UBound(c) Step 5
        If A > c(i) And A <= c(i + 1) And B > c(i + 2) And B <= c(i + 3) Then
            Res = c(i + 4)
            Exit For
        End If
    Next i
    Test2 = Res
    End Function
     
     
    Public Function Test3(ByVal A As Double, ByVal B As Double) As Double
    Dim Rs As DAO.Recordset
    Set Rs = CurrentDb.OpenRecordset("SELECT C FROM tTEST WHERE " & A & ">AMin AND " & A & "<=AMax AND " & B & ">BMin AND " & B & "<=BMax", dbOpenSnapshot)
    If Not Rs.EOF Then Test3 = Rs!c
    Rs.Close
    Set Rs = Nothing
    End Function
    la 3ème solution utilise une requete sur la table tTest qui possède 5 colonnes en réel double (amin amax, bmin, bmax, c) et la référence ADO.
    Créer une ligne pour chaque groupe de conditions.

    A adapter selon constantes, si > ou >= et < ou <= etc...

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 170
    Points : 74
    Points
    74
    Par défaut
    Bonjour
    merci a vous je test et je vous repond plus tard
    merci encore une autre fois
    cordialement

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

    une petite correction pour la 3ème proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function Test3(ByVal A As Double, ByVal B As Double) As Double
    Dim Rs As DAO.Recordset, sA As String, sB As String
    sA = Str(A): sB = Str(B) 'Passer la virgule des nombres en point pour la requête
    Set Rs = CurrentDb.OpenRecordset("SELECT C FROM tTEST WHERE " & sA & ">AMin And " & sA & "<=AMax AND " & sB & ">BMin And " & sB & "<=BMax", dbOpenSnapshot)
    If Not Rs.EOF Then Test3 = Rs!c
    Rs.Close
    Set Rs = Nothing
    End Function

Discussions similaires

  1. utiliser fonction excel depuis vba
    Par mapmip dans le forum Excel
    Réponses: 1
    Dernier message: 31/08/2009, 15h25
  2. [XL-2003] Utiliser fonction excel dans VBA
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2009, 05h55
  3. utilisation des fonction excel dans VBA
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2009, 11h24
  4. [VBA-E]Utilisation de la fonction replace
    Par Jusomi31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/06/2007, 08h59
  5. Réponses: 8
    Dernier message: 29/06/2006, 15h37

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