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 :

Programmation en VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 75
    Par défaut Programmation en VBA
    J’ai plusieurs tests à réaliser et ma feuille Excel ressemble à un dinosaure tellement elle possède de colonne. Je ne possède aucune notion en VBA c’est pourquoi je réalise manuellement tous les tests, il reconnaître que c’est plutôt long, fastidieux avec le risque d’erreur. Si quelqu’un pouvait se pencher sur mon problème se serait formidable.
    Merci par avance car je me rends compte du travail à réaliser

    Je joins le fichier en annexe pour être plus clair

    Chronologie du test (en langage Excel)
    1) Fonction F1 = SIN(B17/Z$30)+SIN(C17/AA$30) Résultat calcul en AL12 = 8.37
    2) Fonction F21 =SIN(B17/Z$30)+SIN(C17/AA$30)+SIN(D17/AB$30) résultat en AN12=12.5
    3) Fonction F22 =SIN(B17/Z$30)+SIN(C17/AA$30)-SIN(D17/AB$30) résultat en AO12=1.18
    4) Test : si résultat F21>F1 alors F21 retenue
    5) Test : si résultat F22>F1 alors F22 retenue
    6) Test : si résultat F21et F22 < F1 alors F1 retenue
    7) Résultat du test F21 > F1 car 12.5 > 8.37

    8) Fonction F21 + nouvelle fonction =SIN(B17/Z$30)+SIN(C17/AA$30)+SIN(D17/AB$30)+SIN(E17/AC$30) Résultat calcul en AQ12 = 12.4
    9) Fonction F32 =SIN(B17/Z$30)+SIN(C17/AA$30)+SIN(D17/AB$30)-SIN(E17/AC$30) résultat en AR12=4.83
    10) Test : si résultat F31>F21 alors F31 retenue
    11) Test : si résultat F32>F21 alors F32 retenue
    12) Test : si résultat F31et F32 < F31 alors F21 retenue
    13) Résultat du test F31 et F32 < F21 car 12.4 < 12.5 Fonction F21 retenue

    14) Fonction F21 + nouvelle fonction F41 =SIN(B17/Z$30)+SIN(C17/AA$30)+SIN(D17/AB$30)+SIN(F17/AD$30) Résultat calcul en AT12 = 15.1
    15) Fonction F42 =SIN(B17/Z$30)+SIN(C17/AA$30)+SIN(D17/AB$30)-SIN(F17/AD$30) résultat en AU12=1.73
    16) Test : si résultat F41>F21 alors F41 retenue
    17) Test : si résultat F42>F21 alors F42 retenue
    18) Test : si résultat F41et F42 < F21 alors F21 retenue
    19) Résultat du test F41 > F21 car 15.5 > 12.5

    Etc…
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Je ne suis vraiment pas sûr d'avoir tout saisis mais regarde déjà ce que je t'ai pondu et reviens. J'ai pris ta séquence et j'ai codé sans plus réfléchir afin d'avoir un point de départ :
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    Sub Test()
     
        Dim F1 As Single
        Dim F21 As Single
        Dim F22 As Single
        Dim F32 As Single
        Dim F41 As Single
        Dim F42 As Single
        Dim A As Single
        Dim B As Single
        Dim C As Single
        Dim D As Single
        Dim E As Single
        Dim ValeurRetenue As Single
     
        'fonctions sinus
        A = Sin([B17] / [Z$30])
        B = Sin([C17] / [AA$30])
        C = Sin([D17] / [AB$30])
        D = Sin([E17] / [AC$30])
        E = Sin([F17] / [AD$30])
     
        'premières fonctions
        F1 = A + B
        F21 = A + B + C
        F22 = A + B - C
     
        'les résultats sont collés dans les cellules
        [AL12] = F1
        [AN12] = F21
        [AO12] = F22
     
        'tests pour affectation de la valeur retenue
        If F21 > F1 Then
            ValeurRetenue = F21
        End If
     
        If F22 > F1 Then
            ValeurRetenue = F22
        End If
     
        If F21 < F1 And F22 < F1 Then
            ValeurRetenue = F1
        End If
     
        'idem...
        F21 = F21 + D
        F32 = A + B + D
     
        [AQ12] = F21
        [AR12] = F32
     
        If F31 > F21 Then
            ValeurRetenue = F31
        End If
     
        If F32 > F21 Then
            ValeurRetenue = F32
        End If
     
        If F31 < F1 And F32 < F21 Then
            ValeurRetenue = F21
        End If
     
        F41 = A + B + C + E
        F42 = A + B + C - E
     
        [AT12] = F41
        [AU12] = F42
     
        If F41 > F21 Then
            ValeurRetenue = F41
        End If
     
        If F42 > F21 Then
            ValeurRetenue = F42
        End If
     
        If F41 < F21 And F42 < F21 Then
            ValeurRetenue = F21
        End If
     
        'affiche la valeur retenue une fois toute la batterie
        'de fonctions et tests exécutés
        MsgBox ValeurRetenue
     
    End Sub
    Hervé.

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

Discussions similaires

  1. Programmer en VBA pour groupements
    Par Mickael747 dans le forum VBA Access
    Réponses: 5
    Dernier message: 18/08/2008, 19h24
  2. Lancer un programme excel vba
    Par wawawawa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/08/2007, 10h19
  3. programme en VBA
    Par sacr76 dans le forum Général VBA
    Réponses: 1
    Dernier message: 14/05/2007, 15h03
  4. Programme excel vba
    Par winieloursonaub dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2006, 11h37
  5. [programmation] code VBA
    Par torNAdE dans le forum Access
    Réponses: 11
    Dernier message: 11/07/2006, 23h25

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