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 :

imprécision dans les reports de tarif [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Cost controler
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cost controler
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut imprécision dans les reports de tarif
    Bonjour,

    j'ai un userform qui reporte des tarif de matériel, et qui indique le total, mais autant le tarif matériel et précis, autant dans le total il apparait rapidement au bout de 2 ou 3 lignes une inexactitude de l'ordre de plusieurs centimes à force de travailler dessus le code je finis par ne plus y voir clair !!! alors si une âme charitable et capable de me trouver l'erreur je suis preneur !!!

    Et si quelqu’un à aussi une idée pour que quand je remets à zéro les champs la première combobox Diamètre ce remettent à zéro aussi (notamment quand j'ajoute une ligne cela ce remet à zéro sauf cette combobox) (une partie du code appartient à Jacques Boisgontier pour les combobox en cascades)

    Merci bcp

    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
    Private Sub B_Ajouter_Click()
    Dim Val1 As Variant
    Dim Val2 As Single
     
     
    If TextBoxNbElts = "" Then TextBoxNbElts = 1
     
     
    If ResumMatos.ListCount = 0 Then
            i = 0
        Else
     
            ResumMatos.Selected(ResumMatos.ListCount - 1) = True
            Val1 = UserForm1.ResumMatos.List(ResumMatos.ListIndex, 9)
            ResumMatos2.Selected(ResumMatos2.ListCount - 1) = True
            Val1bis = UserForm1.ResumMatos2.List(ResumMatos2.ListIndex, 1)
            ResumMatos.RemoveItem (ResumMatos.ListIndex)
            ResumMatos2.RemoveItem (ResumMatos2.ListIndex)
            i = ResumMatos.ListCount   ' - 2
        End If
     
        Val2 = Left(TextBox2.Value, 4)
        'Val2bis = Left(TextBoxNbElts.Value, 4)
        Val3 = Left(Val1, 4)
        Val3bis = Left(Val1bis, 4)
     
        'MsgBox "Val2 =  " & Val2 & "  Val3 =  " & Val3
        If Val3 <> "" Then
            TotalPrix = CSng(Val2) + CSng(Val3)
            TotalPrixBis = CSng(Val2) * CSng(TextBoxNbElts) + CSng(Val3bis)
        Else
            TotalPrix = CSng(Val2)
            TotalPrixBis = CSng(Val2) * CSng(TextBoxNbElts)
        End If
        'MsgBox " TotalPrix =  " & TotalPrix
        'TotalPrix = Format(TotalPrix, "0.00" & " €")
        'MsgBox "Val1  " & Val1 & "  " & TextBox2
     
        Me.ResumMatos.AddItem
        Me.ResumMatos.List(i, 0) = ComboBox1
        Me.ResumMatos.List(i, 1) = ComboBox2
        Me.ResumMatos.List(i, 2) = ComboBox3
        Me.ResumMatos.List(i, 3) = ComboBox4
        Me.ResumMatos.List(i, 4) = ComboBox5
        Me.ResumMatos.List(i, 5) = TextBox1
        Me.ResumMatos.List(i, 6) = TextBox3
        Me.ResumMatos.List(i, 7) = TextBox4
        Me.ResumMatos.List(i, 8) = TextBox5
        Me.ResumMatos.List(i, 9) = Format(TextBox2.Value, "0.00" & " €") 'Val(TextBox2)
     
        Me.ResumMatos2.AddItem
        Me.ResumMatos2.List(i, 0) = TextBoxNbElts
        Me.ResumMatos2.List(i, 1) = Format(TextBox2.Value, "0.00" & " €") * TextBoxNbElts
     
        a = i + 1
        Me.ResumMatos.AddItem
        Me.ResumMatos.List(a, 8) = "Total : "
        Me.ResumMatos.List(a, 9) = TotalPrix 'TotalPrix
     
        Me.ResumMatos2.AddItem
        Me.ResumMatos2.List(a, 1) = TotalPrixBis
     
     
          Set MonDico = CreateObject("Scripting.Dictionary")
      For Each C In f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
         If C = Me.ComboBox1 Then MonDico(C.Offset(, 1).Value) = ""
      Next C
      temp = MonDico.keys
      Call Tri(temp, LBound(temp), UBound(temp))
      Me.ComboBox2.List = temp
      Me.ComboBox2 = ""
      Me.ComboBox3.Clear
      Me.ComboBox4.Clear
      Me.ComboBox5.Clear
      raz
      TextBoxNbElts.Value = ""
    Tarif Materiel Pipe - Testl.xlsm

  2. #2
    Membre habitué
    Homme Profil pro
    Cost controler
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cost controler
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut suite à une information
    sur une quatre site une personne ma expliquée : "Ce n'est pas parce que tu arrondis à 2 chiffres à l'affichage que le reste disparait.
    Et si les 4 décimales sont voulues et normales utilise des variables typées Currency.
    "

    J'ai donc arrondi les chiffre dans excel avec la fonction arrondi ( a 2 chiffres) et fais un copier coller valeur dans la colonne,
    j'ai utilisé une conversion de type CCur au lieu de celle en place, mais soucis il ne trouve pas des centimes en plus mais en moins !!!! sur le 2eme chiffre après la virgule ? au lieu de trouver 20.34 il trouve 20.2 ???

    une idée ?

  3. #3
    Membre habitué
    Homme Profil pro
    Cost controler
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cost controler
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut le fichier modifier
    le fichier modifier :

    donc en tapant (par exemple) :
    2" ; Equal Tee ; S80 ; NA ; NA et nombres d'éléments 4
    il affiche un prix unitaire de : 10.24 mais un total unitaire de 10,2 et un prix total de 40.96 mais un final de 40.80 ????

    Autant entre 10.2 et 10.24 il doit s'agir d'un problème d'affichage de format autant entre 40.96 et 40.80 là j'ai du mal !!!

    j'avoue que mon niveau et moyen et que j'en perd un peu mon latin ( ::o )

    Tarif Materiel Pipe - Test Version 2.xlsm

  4. #4
    Membre habitué
    Homme Profil pro
    Cost controler
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cost controler
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut
    le code résolu grâce a Eriic :

    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    Private Sub B_Ajouter_Click()
     
    Dim Val1, Val2, TotalPrix As Variant
     
    Dim Val1Bis, Val2Bis, TotalPrixBis As Variant
     
    If TextBoxNbElts = "" Then TextBoxNbElts = 1
     
    If ResumMatos.ListCount = 0 Then
     
            i = 0
     
        Else
     
     
            ResumMatos.Selected(ResumMatos.ListCount - 1) = True
     
            Val1 = CCur(UserForm1.ResumMatos.List(ResumMatos.ListIndex, 9))
     
            ResumMatos2.Selected(ResumMatos2.ListCount - 1) = True
     
            Val1Bis = CCur(UserForm1.ResumMatos2.List(ResumMatos2.ListIndex, 1))
     
            ResumMatos.RemoveItem (ResumMatos.ListIndex)
     
            ResumMatos2.RemoveItem (ResumMatos2.ListIndex)
     
            i = ResumMatos.ListCount   ' - 2
     
        End If
     
            TotalPrix = CCur(TextBox2.Value) + Val1
     
            TotalPrixBis = (CCur(TextBox2.Value)) * CCur(TextBoxNbElts) + Val1Bis
     
        Me.ResumMatos.AddItem
     
        Me.ResumMatos.List(i, 0) = ComboBox1
     
        Me.ResumMatos.List(i, 1) = ComboBox2
     
        Me.ResumMatos.List(i, 2) = ComboBox3
     
        Me.ResumMatos.List(i, 3) = ComboBox4
     
        Me.ResumMatos.List(i, 4) = ComboBox5
     
        Me.ResumMatos.List(i, 5) = TextBox1
     
        Me.ResumMatos.List(i, 6) = TextBox3
     
        Me.ResumMatos.List(i, 7) = TextBox4
     
        Me.ResumMatos.List(i, 8) = TextBox5
     
        Me.ResumMatos.List(i, 9) = TextBox2.Value 'Val(TextBox2)
     
        Me.ResumMatos2.AddItem
     
        Me.ResumMatos2.List(i, 0) = TextBoxNbElts
     
        Me.ResumMatos2.List(i, 1) = TextBox2.Value * TextBoxNbElts
     
        a = i + 1
     
        Me.ResumMatos.AddItem
     
        Me.ResumMatos.List(a, 8) = "Total : "
     
        Me.ResumMatos.List(a, 9) = TotalPrix 'Format(TotalPrix, "0.000" & " €")
     
        Me.ResumMatos2.AddItem
     
        Me.ResumMatos2.List(a, 1) = TotalPrixBis
     
        TextBoxTotal = TotalPrixBis
     
          Set MonDico = CreateObject("Scripting.Dictionary")
     
      For Each C In f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
     
         If C = Me.ComboBox1 Then MonDico(C.Offset(, 1).Value) = ""
     
      Next C
     
      temp = MonDico.keys
     
      Call Tri(temp, LBound(temp), UBound(temp))
     
      Me.ComboBox2.List = temp
     
      Me.ComboBox2 = ""
     
      Me.ComboBox3.Clear
     
      Me.ComboBox4.Clear
     
      Me.ComboBox5.Clear
     
      raz
     
      TextBoxNbElts.Value = ""
     
    End Sub

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

Discussions similaires

  1. Enlever le numéro de produit dans les report
    Par Onimanta dans le forum Odoo (ex-OpenERP)
    Réponses: 3
    Dernier message: 02/09/2013, 17h25
  2. Réponses: 2
    Dernier message: 30/03/2009, 10h59
  3. Réponses: 4
    Dernier message: 06/02/2009, 12h22
  4. Reports des erreurs dans les PDF
    Par Arnaud F. dans le forum Traduction LDD3
    Réponses: 0
    Dernier message: 20/07/2007, 22h49
  5. [Reports]Concernant les boutons dans Oracle Report 6i
    Par nadia lydia dans le forum Oracle
    Réponses: 2
    Dernier message: 27/11/2006, 09h43

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