Arrondi en VBA et en Excel Différent

azertyyyy

XLDnaute Nouveau
Bonjour à tous,

Je doit réaliser en VBA une exportation d'une feuille excel dans un fichier txt pour réaliser une importation dans la compta sage 100.
voici le code
Code:
Sub vba()
 
Dim DernLigne As Long

Dim Sommetotal As Long
 
Dim Fs As Object, A As Object
 
Dim i As Long
 
        feuille = Sheets("information").Range("B6").Value
         Code = Sheets("information").Range("c6").Value
        typeecriture = Sheets("information").Range("E6").Value
 
Sheets(feuille).Select
DernLigne = Sheets(feuille).Range("A65536").End(xlUp).Row
date_export = Replace(Sheets("information").Range("D6").Value, "/", "-")
 
Set Fs = CreateObject("Scripting.FileSystemObject")
Set A = Fs.CreateTextFile("J:\Comptabilite\Documents\" & date_export & ".txt", True)
A.WriteLine ("Type Ecriture   Code Journal    Date de Pièce   N° Compte Général   N° Compte tiers Libellé d'écriture  Montant débit   Montant crédit  N°Plan  N° section")
     For i = 1 To DernLigne

         'If Sheets(feuille).Range("C" & i).Value <> "" Then
                         If IsNumeric(Sheets(feuille).Range("D" & i).Value) Then
                     
                     Else
                     Sheets(feuille).Range("D" & i).Value = "0,00"
                End If
         
                         If IsNumeric(Sheets(feuille).Range("E" & i).Value) Then
                     
                     Else
                     Sheets(feuille).Range("E" & i).Value = "0,00"
                End If
         
         
                If Sheets(feuille).Range("D" & i).Value = "" Then
                     Sheets(feuille).Range("D" & i).Value = "0,00"
                End If
         
        If Sheets(feuille).Range("E" & i).Value = "" Then
                     Sheets(feuille).Range("E" & i).Value = "0,00"
                 End If
         

        A.WriteLine (typeecriture & vbTab & Code & vbTab & date_export & vbTab & Range("C" & i) & vbTab & vbTab & Range("A" & i) & vbTab & (Arrondi((Range("D" & i).Value) * 100, 2)) / 100 & vbTab & (Arrondi(Range("E" & i).Value * 100, 2)) / 100 & vbTab & vbTab)
 
'Else
  
'End If
   Next
    A.Close

End Sub

Mon probleme c'est que en compta tout doit etre équilibré. Dans le fichier excel de départ les deux colonnes D et E sont égales.
Par contre une fois l'export réalisé j'ai quelque centime de différence. J'ai testé la fonction round et application.excel.round pour essayé d'arrondir mais sans succès.

J'ai rajouté dans mon script vba le fait de multiplier par 100 et de ré diviser par 100 à la fin.

Je tombe juste mais je voudrais savoir si ma démarche est la bonne ou à moins bien sur que vous ayez une astuce pour les arrondis.

Merci d'avance pour votre aide

guigui69
 

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 237
dernier inscrit
smbt-excel