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 :

Problème macro VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Problème macro VBA
    Bonjour à tous !

    Je viens vers vous car j'ai rédigé une macro sur VBA pour un problème à priori tout bête. Sur le papier j'ai l'impression que tout est bon, mais ça ne fonctionne malheureusement pas. Malheureusement, je n'arrive pas à identifier le problème. Du coup je fais appel à vous. J'espère que vous pourrez m'aider.

    En gros, j'ai un fichier Excel qui se présente comme suit :
    Date
    Nom Client
    Montant hors taxes
    Date début
    Date Fin

    Et je voudrais simplement étaler le Montant hors taxes sur toute la durée, en mois. Je joins mon fichier pour que vous ayez une meilleure idée de ce que je cherche à faire. Revenues test.xlsm

    Voilà donc le code que j'ai rédigé pour ce faire :
    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
    Sub Monthly_Computation()
     
    nb_col = Worksheets("Past & On-going").Range("A2").End(xlToRight).Column
     
     
    For j = 2 To nb_col
     
    Worksheets("Past & On-going").Columns(j).Activate
     
     
    Total = Selection.Range("A7").Value - Selection.Range("A6").Value + 1
     
     
    nb_first = 31 - Day(Selection.Range("A6")) + 1
    nb_last = Day(Selection.Range("A7"))
     
    Month_last = Month(Selection.Range("A7"))
     
    If Year(Selection.Range("A7")) = Year(Selection.Range("A6")) + 1 Then
    Month_last = Month(Selection.Range("A7")) + 12
    End If
     
     
    nb_inter = Month_last - Month(Selection.Range("A6")) - 1
     
     
     
    For i = 1 To 12
     
        If Month(Selection.Range("A6")) = i Then
            first_amnt = (nb_first / Total) * Selection.Range("A5").Value
            Selection.Range("A" & 11 + i).Value = first_amnt
        End If
     
     
        If Month(Selection.Range("A7")) = i Then
            last_amnt = (nb_last / Total) * Selection.Range("A5").Value
            Selection.Range("A" & 11 + i).Value = last_amnt
        End If
     
    Next i
     
     
     
    rest = Selection.Range("A5").Value - first_amnt - last_amnt
     
    For k = 1 To 12
     
        If Month(Selection.Range("A6")) + nb_inter = k Then
            If rest > 1 Then
                Selection.Range("A" & 11 + k).Value = rest / nb_inter
                    If nb_inter > 1 Then
                        For l = Month(Selection.Range("A6")) + 1 To Month(Selection.Range("A6")) + nb_inter - 1
                        Selection.Range("A" & 11 + l).Value = rest / nb_inter
                        Next l
                    End If
            End If
        End If
     
    Next k
     
    Next j
     
    End Sub

    En outre, la macro me renvoie "Overflow" et ne s'execute pas entièrement quand je lance ma procédure. Pourtant, ce n'est pas un programme très compliqué ou long...

    Voilà, je crois que j'ai tout dit. Si vous avez des conseils ou une idée pour arranger mes problèmes, vous me sauveriez !!

    N'hésitez pas si vous avez des questions, ce n'est peut-être pas très clair...

    Merci mille fois par avance !

  2. #2
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Salut,

    Des conseils généraux :
    Indente ton code
    Commente-le en détail, ça aide n'importe qui, y compris toi, pour le relire dans quelques mois.
    Tu as intérêt à mon avis à traiter tes données en colonnes et pas en lignes, les fonctions d'Excel sont conçues pour ça (tri par couleur pour tes OK/FALSE, filtres...).

    Ton problème du reste vient du fait que tu n'avais pas prévu les valeurs négatives.
    Passer les éléments de ta formule en valeurs absolues règle ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rest = Abs(Selection.Range("A5").Value) - Abs(first_amnt) - Abs(last_amnt)
    Ton calcul du nombre de jours du premier mois ne prend pas en compte les mois à 30 jours ni février, je déteste les dates mais j'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb_first = Day(DateSerial(Year(Selection.Range("A6")), Month(Selection.Range("A6")) + 1, 1) - 1) - Day(Selection.Range("A6")) + 1
    Ta formule de cellule pour le OK FALSE marche pas des masses, peut-être ça? :
    =SI(ARRONDI(B24;2)=ARRONDI(B5;2);"OK";"FALSE")

    Il te restera toujours les dernières colonnes qui bafouillent à savoir, à ce que j'ai vu, celles où la période est d'un mois ou de plus d'un an.
    Pour le "moins d'un mois" ça doit être trivial, pour le "plus d'un an" ça t'amènera peut-être à repenser ta conception.

    NB : je n'ai vu qu'après le sexe de l'intervenante ne me sortez pas ça https://www.developpez.com/actu/1239...vos-anecdotes/

    P.S. à l'attention de l'auteure : faire des double posts c'est mmaaaaal

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Génial merci pour ta réponse ! Ca m'a beaucoup aidée.
    J'ai fait quelque modifications et ça marche bien mieux ! Enfin ça marche même carrément. Si tu veux jeter un oeil :

    Revenues v8.xlsm


    Désolée pour le double post, je suis nouvelle je ne savais pas que c'était proscrit ! My bad ! Ca n'arrivera plus
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Oui ça va mieux déjà
    Tu auras un problème si tu as une valeur négative sur plus de deux mois par contre (formule/code peut-être à revoir)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Oui effectivement tu as raison. Je vais essayer d'arranger ça ! Je pense à un message d'erreur si une valeur est négative...

    J'ai essayé de faire des prévisions via mon graphique final (onglet "exponential regression"). Qu'en penses-tu ? Ca te parait correct ?

    Revenues v9.xlsm

    Merci d'être là

    Clémence.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Tout dépend de ce qu'on attend de toi niveau statistiques prédictives mais c'est déjà bien.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Top ! Du moment que ce n'est pas faux ça va. Je n'ai aucune formation à ce sujet donc ils comprendront que mes projections demeurent basiques ...

    Merci pour tout !

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

Discussions similaires

  1. [XL-2007] Problème macro VBA "Excel a cessé de fonctionner"
    Par MAD61141 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/01/2014, 20h02
  2. [XL-2010] Problème Macro VBA
    Par BAYRAL dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2011, 20h04
  3. [PPT-2003] Problème macro VBA et visionneuse
    Par HESPERA dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 25/09/2009, 22h09
  4. problème macro vba collage
    Par olodin dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 20/06/2007, 11h02
  5. problème macro vba collage
    Par olodin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2007, 10h08

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