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 :

Erreur de calcul causée par une erreur d'écriture [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Erreur de calcul causée par une erreur d'écriture
    Bonjour à tous,

    Je travaille sur une macro avec langage VBA. Elle permet de calculer le dimensionnement de palette avec chargement grâce à une base de données contenant les dimensions des caisses ainsi que leur poids.

    Le tout est disponible pour l'utilisateur sur un User form, qui permet de sélectionner la caisse désirée, puis la hauteur maximale du chargement. Il s'en découle les caractéristiques de la palette, à savoir :
    - Nombre de cartons / palette
    - Hauteur
    - Poids

    Mon problème réside dans le poids du chargement. Il n'apparaît jamais sous la bonne valeur. Le poids comprend le poids de la palette (20 kg) et le poids brut de la caisse sélectionnée multiplié par le nombre de caisse sur la palette.

    Voici un extrait de l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     NbCouches = Int((comboNonGerbable.Value - Sheets("Palettisation").Range("C2")) * 1000 / Hext)
    NbCartonsPalette = NbCouches * NbCartonsCouches
    HauteurPalette = NbCouches * Hext + (Sheets("Palettisation").Range("C2").Value * 1000)
    PoidsPaletteBrut = PdsBrut * NbCartonsPalette + 20
    Label18.Caption = NbCartonsCouches
    Label20.Caption = NbCouches
    Label22.Caption = NbCartonsPalette
    Label24.Caption = HauteurPalette
    Label26.Caption = PoidsPaletteBrut
    Je ne sais pas si cela est bien écrit, ou si le problème vient d'un autre endroit...

    Merci de votre aide !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par glpx65 Voir le message
    Il n'apparaît jamais sous la bonne valeur
    je comprend pas ce que ça veut dire

    Dans ton formulaire, c'est pas écrit au bon endroit, ou c'est la valeur qui est fausse ?

    Pour le premier cas, on va pas pouvoir grand chose, étant donné que c'est le libellé que tu renseigne qui doit pas être au bon endroit...

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    salut illight !

    Je pense que le calcul est écrit au bon endroit dans le formulaire. J'ai simplement un faux résultat. Sur la capture d'écran ci-joint, le poids est de 140 kg.

    Alors que calculette en main, je trouve 168 kg... (poids = (40 x 3.7) + 20 = 168 kg )

    Nom : Sans titre.png
Affichages : 194
Taille : 46,9 Ko

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Avant d'inscrire tes valeurs dans les Labels, mets un point d'arrêt et vérifie chaque calcul fait préalablement.
    Il y a certainement un endroit où le calcul ne se fait pas comme tu l'entends.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu peux toujours jeter un œil sur un logiciel libre, tout fait:

    http://stackbuilder.codeplex.com/

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Si la valeur est fausse, c'est que tu as un souci dans les valeurs récupérées. Comme conseillé plus haut, mais des Msgbox de tes différentes valeurs avant de renseigner des "caption" voir où ça pourrait coincer.

    Ou alors fait du pas a pas, en vérifiant la valeur de toutes tes variables

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci de votre aide ! Je vais essayer ça

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Je pense que le problème vient de la valeur décimale 3.7 qui est mal interprétée.

    poids = (40 x 3) + 20 = 140

  9. #9
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour AlainTech !

    Je pense que tu as raison, car sans décimale il n'y a pas de problème. Comment faire comprendre qu'il faut prendre en compte la virgule ?

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour,

    comment sont déclarées tes variables , en particulier : PoidsPaletteBrut, PdsBrut

  11. #11
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Voici les variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Cells(j, 1).Value = siteProduction.List(i) And Cells(j, 2).Value = Ligne.List(Ligne.ListIndex) And Cells(j, 3).Value = grammage.List(grammage.ListIndex) And Cells(j, 4).Value = typeDePack.List(typeDePack.ListIndex) And Cells(j, 13).Value = PCB.List(k) And Cells(j, 14).Value = TypeCaisse.List(TypeCaisse.ListIndex) Then
                    NbCartonsCouches = Val(Cells(j, 23).Value)
                    Hext = Val(Cells(j, 20).Value)
                    PdsBrut = Val(Cells(j, 22).Value)
                Else
                End If

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je ne vois pas de déclaration de variable : instruction Dim ??

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Val ne tient pas compte des décimales.
    Essaie en utilisant CDbl()

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PdsBrut = CDbl(Cells(j, 22).Value)

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Bonjour, bonjour !

    La fonction Val tient compte des décimales quand le séparateur décimal est le point, VBA nativement en anglais oblige …


  15. #15
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par parmi Voir le message
    Val ne tient pas compte des décimales.
    Essaie en utilisant CDbl()

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PdsBrut = CDbl(Cells(j, 22).Value)
    Merci infiniment ! Ca fonctionne à merveille !

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

Discussions similaires

  1. Erreur causée par une boucle ?
    Par lucckyly2 dans le forum Langage
    Réponses: 4
    Dernier message: 01/07/2009, 16h53
  2. fin d'execution se termine par une erreur
    Par ka123tn dans le forum Débuter
    Réponses: 3
    Dernier message: 24/06/2009, 13h53
  3. Avertissement à cause d'une erreur dans l'URL
    Par ranell dans le forum Langage
    Réponses: 3
    Dernier message: 03/03/2008, 17h44
  4. [debutant][servlet]erreur causée par une listBox
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/03/2004, 10h53
  5. C++Builder fait une erreur de calcul
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2004, 22h27

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