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
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
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