Rapport de message :*
 

Affichage décimales incohérent

Titre du sujet : Affichage décimales incohérent
par Danisoaz le 06/05/2011 09:45:17

Bonjour le Forum,

J'affiche dans 3 textbox des données avec 2, 3 et 4 décimales avec le code ci dessous :
TxtPoids.Text = Format(vCellule.Offset(0, 6), "#0.000") 'Poids
TxtCout.Text = Format(vCellule.Offset(0, 8), "#0.0000") 'Coût
TxtTemps.Text = Format(vCellule.Offset(0, 9), "#0.00") 'temps
Après l'enregistrement de la saisie d'un article avec les données 3.567 - 28.3200 - 12.50, le premier affichage est correct.
Quand je modifie un élément quelconque (mais autre) du même article qui utilise exactement les mêmes procédures enregistrer / chargefiche ci dessous, les données en cause sont 3567.000 - 283200.0000 - 12.50.
Et ainsi de suite si je renouvelle 3567000.000 - 2832000000.0000 - 12.50.
C'est une heureuse façon de s'enrichir virtuellement mais ça commence à me ruiner la santé, d'autant qu'il n'y a pas de problèmes tant que je reste sur 2 décimales.
Je précise avoir essayé la virgule, les # en place des 0 et autres choses sans résultats.

Merci de votre aide.
Daniel 

Sub ChargeFiche()

'  Alimentation de la fiche Article

    'recherche de l'enregistrement
    Set vCellule = vWstArticles.Cells(2, 1)
        Do While vClé <> vCellule
            Set vCellule = vCellule.Offset(1, 0)
        Loop
       
    ' si modif charger le n° d'enregistrement
    vNumLigne = vCellule.Row
   
    ' charge les controles
    CbxFamille.Text = vCellule.Offset(0, 1) 'famille
    TxtEtat = vCellule.Offset(0, 2) 'État(Article supprimé)
    CbxLibelléInterne.Text = vCellule.Offset(0, 3) 'libellé interne
    CbxFormat.Text = vCellule.Offset(0, 4) 'Format
    CbxGrammage.Text = Format(vCellule.Offset(0, 5), "###0") 'grammage
    TxtPoids.Text = Format(vCellule.Offset(0, 6), "#0.000") 'Poids
    CbxFournisseur.Text = vCellule.Offset(0, 7) 'Fournisseur
    TxtCout.Text = Format(vCellule.Offset(0, 8), "#0.0000") 'Coût
    TxtTemps.Text = Format(vCellule.Offset(0, 9), "#0.00") 'temps
    CbxLibelléClient.Text = vCellule.Offset(0, 10) 'libellé client
    TxtCommentaires.Text = vCellule.Offset(0, 11) 'commentaires
       
End Sub

Sub Enregistrer()
' Enregistrement d'un nouvel Article ou d'une modification
'-------------------------------------------------

'Contrôle des saisies
vMessage = ""
    If CbxFamille.Text = "" Then vMessage = vMessage & "Famille, "
    If CbxLibelléInterne.Text = "" Then vMessage = vMessage & "Libellé interne, "
    If CbxLibelléClient.Text = "" Then vMessage = vMessage & "Libellé client, "
    If vMessage <> "" Then
        vMessage = "Veuillez saisir : " & vMessage
        Alerte (vMessage): Exit Sub
    End If
    'Incrémentation Code et adresse de l'enregistrement (si modif ou suppr, vNumLigne est chargé dans LvwArticles_ItemClick() )
    If vCommande = "Nouveau" Then
        vClé = Application.WorksheetFunction.Max(Range("A:A")) + 1
        vNumLigne = vWstArticles.Range("A65536").End(xlUp).Row + 1
    End If
   
'Enregistrement dans la table
Set vCellule = vWstArticles.Cells(vNumLigne, 1)

    vCellule.Offset(0, 0) = vClé 'VClé est chargé CmdNouveau,Cmdnouveau2 ou LvwArticles_ItemClick
    vCellule.Offset(0, 1) = CbxFamille.Text
    vCellule.Offset(0, 2) = TxtEtat.Text
    vCellule.Offset(0, 3) = CbxLibelléInterne.Text
    vCellule.Offset(0, 4) = CbxFormat.Text
    vCellule.Offset(0, 5) = Format(CbxGrammage.Text, "###0")
    vCellule.Offset(0, 6) = Format(TxtPoids.Text, "#0.000")
    vCellule.Offset(0, 7) = CbxFournisseur.Text
    vCellule.Offset(0, 8) = Format(TxtCout.Text, "#0.0000")
    vCellule.Offset(0, 9) = Format(TxtTemps.Text, "#0.00")
    vCellule.Offset(0, 10) = CbxLibelléClient.Text
    vCellule.Offset(0, 11) = TxtCommentaires.Text
   
    ThisWorkbook.Save
   
    'Mise à jour des combobox, listview
    LvwArticles.Sorted = False
    MajListingArticles
    ComboFill

    'Conserver les données du dernier Article saisi
    ChargeFiche
    vMessage = ""

    'MAJ des boutons de commande
    vCommande = "Enregistrer"
    Commande vCmdN, vCmdN2, vCmdM, vCmdE, vCmdA
   
End Sub