Pourquoi 1.20000004768371

Résolu
BUDGETS Messages postés 1612 Date d'inscription   Statut Membre Dernière intervention   -  
 momo -
Bonjour à toutes et à tous
Bonne et heureuse année à toutes et à tous. Que cette année vous apporte beaucoup de plaisir, de joie, de bonheur, la réalisation de vos vœux les plus chers.
Fichier ESPECES 2017 : feuille saisie opérations numéraires : lignes Prix unitaire, quantité, total : 1.20 apparaît bien avec deux chiffres après la virgule et rien d'autre. Feuille opérations numéraires : cellules J4 et L4 1.20 devient 120000004768371 : pourquoi ? Qui va pouvoir me dire où se produit l'erreur. J'ai dû, malencontreusement, modifier quelque chose pour que 1,20 devienne ce qu'il est dans la feuille opérations numéraires. Évidemment, les contrôles deviennent faux puisque 1,20 est devenu 1,20000004768371. Partout, normalement, le format est en nombre à 2 décimales avec utiliser le séparateur de milliers (sauf pour le numéro du ticket). J'ai essayé également avec Excel 2007, tant sur mon portable que sur mon pc de bureau, le même phénomène se produit. Ci-dessous le fichier ESPECES 2017.xlsm.
https://www.cjoint.com/c/GADkh4Fbyny
D'avance, merci pour votre aide précieuse (en cas de manipulations à effectuer, merci de me les détailler en détail, n'étant pas un expert informaticien).
Bonnes journée et continuation à toutes et à tous.
BUDGETS

3 réponses

  1. BUDGETS Messages postés 1612 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Vaucluse,

    Ces valeurs ont copiées directement à partir des saisies effectuées dans la feuille saisie opérations numéraires.
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      vI, j'ai vu ça trop tard,et j'ai retiré mon message, mais je ne suis pas assez bon en VBA pour expliquer le problème.
      Tout ce que je peux dire c'est que dans la macro, si vous évitez de passer par cette déclaration, ça semble aller mieux,ainsi cette ligne testée pour enregistrer la valeur de B12
      ActiveCell.Offset(0, 9).Value = Range("'Saisie opérations numéraires'!B12").Value
      donne un résultat à priori exact en J4
      Mais ne me demandez pas pourquoi :-???.
      crdlmnt
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, Je vois que tu as déclaré tes variables numériques comme "single", je te suggère de les déclarer comme "double".
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      et même As Currency tant qu'à faire
      eric
      0
  3. momo
     
    Bonjour
    maco copie,transpose
    Sub Enregistrement_opérations_numéraires()
    Dim Sh As Worksheet
    Dim Nlig As Long
    Set Sh = Sheets("Opérations numéraires")
    Nlig = Sh.Cells(Rows.Count, 2).End(xlUp).Row + 1
    Application.ScreenUpdating = False
        Range("B3:B17").Copy
        Sh.Range("A" & Nlig).PasteSpecial xlPasteValues, , , True
        Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub
    

    A+
    Maurice
    -2