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 :

Calcul VBA PMP


Sujet :

Macros et VBA Excel

Vue hybride

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 Calcul VBA PMP
    Bonjour à toutes et à tous,

    Est-ce que quelqu'un peut m'aider? J'ai créé le code suivant. Or, il ne fonctionne pas du tout comme je le souhaite. J'ai fais la fonction debug et je ne comprends pas pourquoi cela marche pas.

    Dans le debug, il ne rentre jamais dans ma fonction du if. Or, il n'y a pas d'erreur de typo. Qu'est ce qui ne va pas dans mon code?

    Nom : Capture.PNG
Affichages : 368
Taille : 10,7 Ko
    Nom : Capture2.PNG
Affichages : 374
Taille : 23,3 Ko

    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
    Sub Mettre_à_jour()
        'Variables
        i = 0 'Valeur actualisé du PMP tant que la quantité n'est pas atteinte
        j = 1000 'Nombre de lignes maximum prises en compte dans le calcul
        k = 2 'Ligne de la fiche PMP à mettre à jour
        l = 0 'Somme des quantités prises dans le calcul de mise à jour du PMP
     
    'Mise à jour du PMP
        Do While l < Cells(k, 6) 'Tant que le cumul quantité est inférieur à la quantité en stock
           If Sheets("Component_cost_data").Cells(j, 1).Value = Sheets("PMP").Cells(k, 2).Value Then 'Test de vérification de la désignation. Si oui, on prend en compte sinon on passe au suivant
            If Sheets("Component_cost_data").Cells(j, 10).Value > Sheets("PMP").Cells(k, 6).Value Then 'Si la quantité libérée est supérieure à la quantité en stock, alors
                Sheets("PMP").Cells(k, 5) = Sheets("Component_cost_data").Cells(j, 18) 'Le PMP est égal au unit cost de cette libération
            ElseIf Sheets("Component_cost_data").Cells(j, 10).Value < Sheets("PMP").Cells(k, 6).Value Then 'si la quantité libérée est inférieure à la quantité en stock, alors
                i = (i * l + Sheets("Component_cost_data").Cells(j, 18).Value * Sheets("Component_cost_data").Cells(j, 10).Value) / (l + Sheets("Component_cost_data").Cells(j, 10).Value) 'Calcul du nouveau PMP intermédiaire
                l = l + Sheets("Component_cost_data").Cells(j, 10).Value 'Mise à jour de la quantité ayant le PMP calculé ci-dessus
            End If
            End If
            j = j - 1 'Décrémentation des lignes
           Loop
     
    End Sub
    Je vous remercie beaucoup pour votre aide.

    Ludovic

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour,
    As tu pensé de faire un MsgBox ou un debug.print de cells(K,6) ?
    Il est probable que tu n'interroges pas la feuille souhaitée avec ton cells(K,6).
    Tiens nous au courant.
    Bonne journée.

  3. #3
    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
    Hello, Oui j'ai essayé. Même en mettant comme cela ça ne marche pas.

    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
    Sub Mettre_à_jour()
        'Variables
        i = 0 'Valeur actualisé du PMP tant que la quantité n'est pas atteinte
        j = 665 'Nombre de lignes maximum prises en compte dans le calcul
        k = 2 'Ligne de la fiche PMP à mettre à jour
        l = 0 'Somme des quantités prises dans le calcul de mise à jour du PMP
     
    'Mise à jour du PMP
        Do While l < Sheets("PMP").Cells(k, 6) 'Tant que le cumul quantité est inférieur à la quantité en stock
           If Sheets("Component_cost_data").Cells(j, 1).Value = Sheets("PMP").Cells(k, 2).Value Then 'Test de vérification de la désignation. Si oui, on prend en compte sinon on passe au suivant
            If Sheets("Component_cost_data").Cells(j, 10).Value > Sheets("PMP").Cells(k, 6).Value Then 'Si la quantité libérée est supérieure à la quantité en stock, alors
                Sheets("PMP").Cells(k, 5) = Sheets("Component_cost_data").Cells(j, 18) 'Le PMP est égal au unit cost de cette libération
            ElseIf Sheets("Component_cost_data").Cells(j, 10).Value < Sheets("PMP").Cells(k, 6).Value Then 'si la quantité libérée est inférieure à la quantité en stock, alors
                i = (i * l + Sheets("Component_cost_data").Cells(j, 18).Value * Sheets("Component_cost_data").Cells(j, 10).Value) / (l + Sheets("Component_cost_data").Cells(j, 10).Value) 'Calcul du nouveau PMP intermédiaire
                l = l + Sheets("Component_cost_data").Cells(j, 10).Value 'Mise à jour de la quantité ayant le PMP calculé ci-dessus
            End If
            End If
            j = j - 1 'Décrémentation des lignes
           Loop
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Citation Envoyé par lebouscat Voir le message
    Je vous confirme que la valeur Sheets("PMP").Cells(k,5) est toujours égal à 500. Ce qui est normal au vu de ce que j'ai fais.
    Citation Envoyé par lebouscat Voir le message
    'Mise à jour du PMP
    Do While l < Sheets("PMP").Cells(k, 6) 'Tant que le cumul quantité est inférieur à la quantité en stock
    [/CODE]
    @bobby
    Désolé j'avais pas vu que tu l'avais déjà mentionné, et comme tu n'as pas eu de réponse, autant reposé la question

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Pas mieux que "comme de bien entendu " affiche le contenu de tes variables pour savoir ce qui cloche
    Quelles sont les valeurs de l , Sheets("PMP").Cells(k, 6), Sheets("Component_cost_data").Cells(j, 1).Value , Sheets("PMP").Cells(k, 2).Value

  6. #6
    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
    Justement mon problème c'est que l ne bougent jamais. On ne passe jamais dans la boucle. C'est cela mon problème.

  7. #7
    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
    Pour les autres, je ne sais pas le faire afficher. Pour les cells.etc...

Discussions similaires

  1. [XL-2010] questionnaire calcul vba
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 25/06/2015, 09h46
  2. [XL-2007] Résultats Calcul VBA dans cellule Excel
    Par Estaque3394 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2012, 19h21
  3. [AC-2002] Calcul VBA sur le résultat de 2 SQL
    Par wushu29 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/04/2010, 11h39
  4. Calcul vba dans feuille de données
    Par KGUTBM dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/07/2008, 11h53
  5. [Calculs VBA] Test de condition sous VBA
    Par guen dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/11/2007, 17h52

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