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 :

Affectation de formule de calcul et calcul à partir d'une plage de taux variable [XL-2003]


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 Affectation de formule de calcul et calcul à partir d'une plage de taux variable
    Bonjour,
    je voudrais créer une macro qui à partir d'une table de taux qui affecte un mode de calcul pour les colonnes de O à CH.
    POUR Les colonnes Q R et T quelque soit le taux dans la colonne B
    LA Formule de calcul pour la colonne Q est =SI(G6=993;I6;0) à dupliquer ds toute la colonne
    Colonne R =SI(G6=993;N6;0)

    Colonne T =SI(G6=997;N6;0)

    par contre les complexe pour moi sont les colonnes suivante
    i étant une valeur dans la colonne
    COLONNE BO pour Bi=7%;SI(Gi=201;(Ji+Mi);))

    la plus compliqué est la colonne AI avec laquelle j'ai du mal si Bi=7%
    LA FORMULE EST LA SUIVANTE
    Si Bi=7% alors la formule de calcule dans AI est =SI(ET(G35=242;C35="00X");0;SI(OU(G35=251;G35=253;G35=270;G35=290;G35=999);J35+M35;SI(ET(G35=242;C35<>"00X");J35+M35;0)))

    colonne AK pour Si Bi = 7% alors calculer la ligne dans la colonne AKi en fonction de la formule suivante
    =SI(ET(G35=242;C35="00X");0;SI(OU(G35=251;G35=253;G35=270;G35=290;G35=999);K35+L35;SI(ET(G35=242;C35<>"00X");K35+L35;0)))
    le plus dur c'est la colonne AH si Bi appartient à l'une de ces valeurs
    11,30%
    11,35%
    11,40%
    11,50%
    12,10%
    12,20%
    12,70%
    12,75%
    12,80%
    13,00%
    13,15%
    13,26%
    13,40%
    13,50%
    13,70%
    13,75%
    13,76%
    13,89%
    13,90%
    13,91%
    14,05%
    14,14%
    14,20%
    14,21%
    14,32%
    14,50%
    14,53%
    14,54%
    14,58%
    14,68%
    14,70%
    14,73%
    14,74%
    14,79%
    14,85%
    14,87%
    14,89%
    14,92%
    14,95%
    15,00%
    15,05%
    15,09%
    15,14%
    15,20%
    15,50%
    15,67%
    15,80%
    15,86%
    15,97%
    16,09%
    16,16%
    16,40%
    16,50%
    16,71%
    16,90%
    16,96%
    17,16%
    17,25%
    17,30%
    17,38%
    17,40%
    18,94%
    19,30%
    19,70%
    20,10%
    20,25%
    21,00%
    21,60%
    23,80%
    24,94%
    25,70%
    26,20%
    26,85%
    27,00%
    27,75%
    28,32%
    30,00%
    alors la formule de calcul dans AH EST =AG75*30%
    ILy a beaucoup d'autres cas de figure je relève juste les plus difficile je coderai le reste plus facilement si j'arrive à voir comment faire pour ceux là en fait je debute dans VBA

    je vous serai reconnaissant même si j'ai juste un bout de code je peux l'adapter au reste du fichier qui est énormes une centaine de colonne
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Je crois qu'il s'agit plus d'écrire correctement une formule unique qui pourrait se recopier dans toutes les cellules d'une colonne avant de penser à passer à du code VBA.
    Entre autre, il est peut être intéressant sur un gros dossier d'éviter des SI emboités et de jongler avec du calcul sur les valeurs logiques.
    La formule = SI (condition ; calcul ; 0) peut se remplacer par la formule = (condition)*(calcul)
    Pour la colonne BO, le joli smiley empèche malheureusement de savoir ce que donne la formule lorsque Gi est différent de 201
    Pour la colonne AI
    à la ligne i, on peut écrire comme formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = (Bi=7)*(Ji+Mi)*((Gi=251)+(Gi=270)+(Gi=290)+(Gi=999)+(Gi=242)*(Ci="00X"))
    et pour la colonne AK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = (Bi=7)*(Ki+Li)*((Gi=251)+(Gi=270)+(Gi=290)+(Gi=999)+(Gi=242)*(Ci="00X"))
    Pour la colonne AH
    En écrivant les taux 11,30 ; 11,35 ; .... ; 28,82 ; 30 dans une colonne par exemple en A1:A77 d'une feuille du classeur et en lui donnant éventuellement un nom par exemple listetaux
    la formule en ligne i de la colonne AH peut s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =AGi*0,3*(1-ESTNA(EQUIV(Bi;listetaux;0)))
    Cordialement
    Claude

  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
    Bonjour je vous remercie de votre aideje m'evertue en ce moment à écrire une formule de calcul unique pour chaque colonne.
    par ailleurs je précise juste qu'à la place du smiley il n'ya rien pour la colonne BO la formule reste donc =SI(Gi=201;(Ji+Mi))
    et je voudrais savoir en cas de plusieurs conditions est ce que la formule = (condition)*(calcul)
    reste valable.
    Merci d'avance

    [Edit]
    Désolé ne pas tenir compte du smiley. à la pace du smiley il n'y a rien en fait
    COLONNE BO pour Bi=7% la formule est SI(Gi=201;Ji+Mi))

  4. #4
    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 des formules unique par colonne
    boinjour,

    j'ai conçu des formule uniques pour chauqe colonne et je voudrais les coder comme je debute dans VBA je ne sais pas comment m'y prendre:
    je note ici la formule en exemple
    pour la colone O
    =SI(OU(OU(B6=0;B6=3,5;B6=7;B6=7,7;B6=8;B6=9,5;B6=9,77;B6=10,2;B6=11;B6=15,8;B6=19,3;B6=19,7;B6=21;B6=21,6;B6=23,8;B6=24,94;B6=25,7;B6=28,32;B6=30;B6=33,1;B6=33,6;B6=40;G6=993;G6=997);ET(B6<=4,5;B6>=4,4);ET(B6<=7,4;B6>=7,1);ET(B6<=8,52;B6>=8,5);ET(B6<=9,12;B6>=9);ET(B6<=11,5;B6>=11,3);ET(B6<=12,2;B6>=12,1);ET(B6<=13,15;B6>=12,7);ET(B6<=13,27;B6>=13,26);ET(B6<=13,5;B6>=13,4);ET(B6<=13,91;B6>=13,7);ET(B6<=15,67;B6>=14,08);ET(B6<=15,97;B6>=15,86);ET(B6<=16,96;B6>=16,09);ET(B6<=17,4;B6>=17,16);ET(B6<=18,5;B6>=18);ET(B6<=19;B6>=18,94);ET(B6<=20,25;B6>=20,1);ET(B6<=26,6;B6>=26,2);ET(B6<=27,75;B6>=26,85);ET(B6<=37;B6>=34,2);ET(B6<=107;B6>=100));0;I6)

  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 affecation
    finalement j'ai resolu le problème avec la focntion select case:

    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
    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
     
     
        'etc... autant de conditions que tu veux
    End Select
     
    MaFonction = (Cel1 + Cel2) * p
     
    End Function

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

Discussions similaires

  1. Calcul du semestre à partir d'une date
    Par mohamed_ dans le forum SAS Base
    Réponses: 8
    Dernier message: 01/06/2015, 10h19
  2. Réponses: 2
    Dernier message: 04/11/2009, 12h30
  3. [AC-2003] calculer la somme à partir d'une listbox
    Par sakia dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/07/2009, 00h04
  4. Calcul d'angle à partir d'une image
    Par jesusnogo dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 18/05/2009, 13h40
  5. Calcul du SNR à partir d'une trame 802.11
    Par Kingdomofh dans le forum Développement
    Réponses: 2
    Dernier message: 12/03/2007, 08h45

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