Pourquoi 1.20000004768371

Résolu
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. Bonjour Vaucluse,

    Ces valeurs ont copiées directement à partir des saisies effectuées dans la feuille saisie opérations numéraires.
    0
    1. Contributeur
      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. Contributeur
    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. Contributeur
      Bonjour,

      et même As Currency tant qu'à faire
      eric
      0
  3. 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