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 :

Correction de Code.


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 66
    Par défaut Correction de Code.
    Bonjour,

    Je me permets de vous demander de l'aide car j'ai créé une macro excel qui test l'effet de solutions sur un projet. Or, je ne sais pas pourquoi mais la quand je sélectionne toutes les solutions, le levier 6 et 7 ne sont pas pris en compte. On le voit car les gains sur le coût de possession sont les mêmes si l'on les sélectionne ou non.
    Pourriez-vous m'aider à me dire pourquoi c'est le cas? Je vous mets mon fichier en pièces jointes sachant que les onglets concernés sont situation actuelle optimisé, situation actuelle et solutions.
    Le code se situe dans l'onglet développeur dans le module 2.

    je vous remercie pour votre aide.

    Cordialement,

    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
    Ce n'est pas les photos les plus récentes mais c'est le même principe et voila le code en question:
    For i = 2 To 20
        If Cells(8, i) = "Oui" Then
     
            lig = ligne() ' voir dans module1
            'on selectionne ici l'onglet qui est contenue dans B4 au coordonnées voulu
            'Cas où on étudie le premier levier
            If i = 2 Then
             'Cas où l'on étudie l'on fait varier le Coût moyen par site
                If Cells(6, i).Value = "Coût moyen par site initial" Then
                    If Cells(4, i) = "Situation Initiale" Then
                        Worksheets("Situation initiale optimisée").Cells(7, 2).Value = Worksheets("Solutions").Cells(3, i).Value
                        Else
                        Worksheets("Situation actuelle optimisée").Cells(7, 2).Value = Worksheets("Solutions").Cells(3, i).Value
                    End If
            ElseIf Cells(4, i) = "Situation Initiale" Then
            'On selectionne le bon onglet où affecter les modifications
                Worksheets("Situation initiale optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                Else
                Worksheets("Situation actuelle optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
            End If
     
            'Cas où l'on étudie les autres leviers
            Else: For j = 2 To (i - 1)
           'Cas où l'on étudie l'on fait varier le Coût moyen par site
                If Cells(6, i).Value = "Coût moyen par site initial" Then
                    If Cells(4, i) = "Situation Initiale" Then
                        Worksheets("Situation initiale optimisée").Cells(7, 2).Value = Worksheets("Solutions").Cells(3, i).Value
                        Else
                        Worksheets("Situation actuelle optimisée").Cells(7, 2).Value = Worksheets("Solutions").Cells(3, i).Value
                    End If
                ElseIf Cells(5, j).Value = Cells(5, i).Value Then
                    If Cells(6, j).Value = Cells(6, i).Value Then
                        If Cells(4, i) = "Situation Initiale" Then
            'Cas où il existe déjà une modification sur cette cellule
                Worksheets("Situation initiale optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets("Situation initiale optimisée").Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                        Else
                Worksheets("Situation actuelle optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets("Situation actuelle optimisée").Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                        End If
                        ElseIf Cells(4, i) = "Situation Initiale" Then
     
            'Cas où l'on ne retrouve que la même période impacté
                Worksheets("Situation initiale optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                    Else
                Worksheets("Situation actuelle optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                    End If
                ElseIf Cells(4, i) = "Situation Initiale" Then
     
            'Cas où aucune des informations ne sont les mêmes
                Worksheets("Situation initiale optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                Else
                Worksheets("Situation actuelle optimisée").Cells(lig, Cells(5, i).Value + 2).Value = Worksheets(Cells(4, i).Value).Cells(lig, Cells(5, i).Value + 2).Value + Worksheets("Solutions").Cells(7, i).Value - Worksheets("Solutions").Cells(3, i).Value
                End If
        Next j
                End If
        ElseIf Cells(8, i) = "Non" Then
                MsgBox ("La solution " & i - 1 & " n'est pas retenue")
        Else
        End If
    Next i
    End Sub
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. correction du code
    Par fraisa1985 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2008, 15h55
  2. Correction du code
    Par punisher999 dans le forum Langage
    Réponses: 8
    Dernier message: 28/01/2007, 21h26

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