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
|