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 :

Codage si imbriqué


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 54
    Par défaut Codage si imbriqué
    Bonjour je cherche à coder les conditions suivante sous forme de fonctions.
    =SI(B6=7,16%;(J6+M6)*8%;

    SI(B6=7,4%;(J6+M6)*20%;

    SI(B6=7,7%;(J6+M6)*35%;

    SI(B6=8%;(J6+M6)*50%;

    SI(B6=8,5%;(J6+M6)*75%;

    SI(B6=8,52%;(J6+M6)*76%

    SI(OU(B6=4,4%;B6=4,5%;B6=9%;B6=9,06%;B6=9,12%;B6=9,5%;B6=10,2%;B6=15,27%);(J6+M6)

    SI (OU(J6=0 ;M6=0)=>0 sinon => ((J6+M6)-AE6)


    j'ai essayé la fonction suivantes mais elle ne marche pas
    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
    Function Fonction(CelPourcent As Range, Cel1 As Range, Cel2 As Range, cel3 As Range)
    Dim p As Single
     
    Select Case CelPourcent
    Case 0.0716: p = 0.08
    Case 0.074: p = 0.2
    Case 0.077: p = 0.35
    Case 0.08: p = 0.5
    Case 0.085: p = 0.75
    Case 0.0852: p = 0.76
    MaFonction2 = (Cel1 + Cel2) * p
     
    Case Else
    Case 0.135,case 0.044, case 0.045, case 0.0906,case 0.102,case 0.1527
    MaFonction2 = (Cel1 + Cel2)
     
    Case Else
    Cel1=0,cel2=0
    Case Else
    MaFonction2 = (Cel1 + Cel2) - cel3
     
     
    End Select
     
     
    End Function
    quelqu'un aurait il une idée ?

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Sauf erreur :

    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 maFonction(CelPourcent As Range, Cel1 As Range, Cel2 As Range, cel3 As Range)
        Select Case CelPourcent.Value
            Case 0.0716: maFonction = (Cel1 + Cel2) * 0.08
            Case 0.074: maFonction = (Cel1 + Cel2) * 0.2
            Case 0.077: maFonction = (Cel1 + Cel2) * 0.35
            Case 0.08: maFonction = (Cel1 + Cel2) * 0.5
            Case 0.085: maFonction = (Cel1 + Cel2) * 0.75
            Case 0.0852: maFonction = (Cel1 + Cel2) * 0.76
            Case 0.044, 0.045, 0.09, 0.0906, 0.0912, 0.095, 0.102, 0.1527: maFonction = Cel1 + Cel2
        End Select
        If Cel1 = 0 Or Cel2 = 0 Then
            maFonction = 0
        Else
            maFonction = Cel1 + Cel2 - cel3
        End If
    End Function

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 54
    Par défaut codage si imbriqué
    oui en fait je pense que le code que tu as proposés devrais marché mais je ne sais pas c'est peut être parce que j'ai dejà une fonction je te montre 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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    sub copie()
     
    Range("O6:DU6").AutoFill Destination:=Range("O6:DU" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillDefault
     
     
    End Sub
     
    Function maFonction(CelPourcent As Range, Cel1 As Range, Cel2 As Range)
    Dim p As Single
     
    Select Case CelPourcent
        Case 0.1315: p = 0.1976
        Case 0.135: p = 0.2143
        Case 0.137: p = 0.2238
        Case 0.1376: p = 0.2267
        Case 0.1391: p = 0.2338
        Case 0.1453: p = 0.2633
        Case 0.1454: p = 0.2638
        Case 0.135: p = 0.2143
        Case 0.137: p = 0.2238
        Case 0.1376: p = 0.2267
        Case 0.1391: p = 0.2338
        Case 0.1453: p = 0.2633
        Case 0.1454: p = 0.2638
        Case 0.1458: p = 0.2657
        Case 0.147: p = 0.2714
        Case 0.1474: p = 0.2733
        Case 0.1479: p = 0.2757
        Case 0.15: p = 0.2857
        Case 0.1505: p = 0.2881
        Case 0.155: p = 0.3095
        Case 0.1567: p = 0.3176
        Case 0.1597: p = 0.3319
        Case 0.164: p = 0.3524
        Case 0.165: p = 0.3571
        Case 0.169: p = 0.3762
        Case 0.1716: p = 0.3886
        Case 0.1894: p = 0.4733
        Case 0.193: p = 0.4905
        Case 0.197: p = 0.5095
        Case 0.201: p = 0.5286
        Case 0.2025: p = 0.5357
        Case 0.21: p = 0.5714
        Case 0.216: p = 0.6
        Case 0.238: p = 0.7048
        Case 0.2494: p = 0.759
        Case 0.257: p = 0.7952
        Case 0.262: p = 0.819
        Case 0.2685: p = 0.85
        Case 0.27: p = 0.8571
        Case 0.2775: p = 0.8929
        Case 0.2832: p = 0.92
     
     
     
    End Select
     
    maFonction = (Cel1 + Cel2) * p
     
    End Function
     
    End Sub
     
    Function Fonction(CelPourcent As Range, Cel1 As Range, Cel2 As Range, cel3 As Range)
        Select Case CelPourcent.Value
            Case 0.0716: Fonction = (Cel1 + Cel2) * 0.08
            Case 0.074: Fonction = (Cel1 + Cel2) * 0.2
            Case 0.077: Fonction = (Cel1 + Cel2) * 0.35
            Case 0.08: Fonction = (Cel1 + Cel2) * 0.5
            Case 0.085: Fonction = (Cel1 + Cel2) * 0.75
            Case 0.0852: Fonction = (Cel1 + Cel2) * 0.76
            Case 0.044, 0.045, 0.09, 0.0906, 0.0912, 0.095, 0.102, 0.1527: Fonction = Cel1 + Cel2
        End Select
        If Cel1 = 0 Or Cel2 = 0 Then
            Fonction = 0
        Else
            Fonction = Cel1 + Cel2 - cel3
        End If
    End Function

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Oui, seulement, tu ne peux pas mettre un "Case" après un "Case Else".

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 54
    Par défaut codage si imbriqué
    ok c'est bon ça marche!
    mais en fait faut que je mette les fonctions dans différent modules!

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

Discussions similaires

  1. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 13h13
  2. Requêtes imbriquées ?
    Par Ph. B. dans le forum XMLRAD
    Réponses: 7
    Dernier message: 06/05/2003, 14h19
  3. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 12h00
  4. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 17h15
  5. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 17h49

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