OVH Cloud OVH Cloud

probleme dans macro excel 2000

12 réponses
Avatar
ALF
Bonjour,
j'ai une macro dont une procedure (sub traitement impayes) me retourne un
fichier .xls et un fichier.txt.
le fichier .xls est ok mais le fichier.txt me renvoie un montant erronné.il
senblerait que la macro supprime le 1er chiffre du montant ,prend la chaine
de chiffre(limité à 5 chiffres max.) sans la virgule puis rajoute la virgule
suivi de 2 chiffres.
ex si montant =523,13 on a dans le fichier.txt 2313,13
je n'arrive pas à trouver ce qui pose probleme dans la procedure..pouvez
vous m'eclairer...je vous laisse la macro

Sub choix()

menu_avip.Show

End Sub



Sub extraction_ACI()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:\CONTENTIEUX_AVIP\ACI\"
' Const DIR = "C:\avip\ACI\"

menu_avip.Hide

date_aci = InputBox("Les ACI de Quelle date doit-on extraire ?", "ATTENTION
Saisir la date sous le format JJMMAA")
date_aci2 = Left$(date_aci, 2) & "/" & Mid(date_aci, 3, 2) & "/20" &
Right$(date_aci, 2)
' création fichier ACI _ date du jour

Workbooks.Open Filename:=dir & "matrice_ACI.xls"
Range("A2") = "ACI à saisir dans MISTRAL - " & date_aci2
nom_fich = "ACI_" & date_aci
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2 =
" & date_aci2

If etat = "ACI" And date_etat = date_aci2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
mont_ACI = Range("R" & i)
motif_ACI = Range("S" & i)
' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = date_defer
Range("E5") = creance
Range("F5") = mont_payés
Range("G5") = solde
Range("H5") = mont_ACI
Range("J5") = mont_ACI / 1.196
Range("I5") = mont_ACI - mont_ACI / 1.196
Range("K5") = motif_ACI
Range("N5") = etat
Range("O5") = date_etat
Range("O5").Select
Selection.NumberFormat = "dd/mm/yy;@"


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:O" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

TTC = 0
TVA = 0
HT = 0

For k = 5 To nb_lignes + 4
TTC = TTC + Range("H" & k)
TVA = TVA + Range("I" & k)
HT = HT + Range("J" & k)
Next k

Range("H" & nb_lignes + 6) = TTC
Range("I" & nb_lignes + 6) = TVA
Range("J" & nb_lignes + 6) = HT


Range("H" & nb_lignes + 6 & ":J" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("H" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("I" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("J" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("H" & j + 1 & ":J" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub


Sub extraction_versement()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:\CONTENTIEUX_AVIP\RIOU\"
'Const DIR = "C:\avip\RIOU\"

menu_avip.Hide

date_RIOU = InputBox("Les Versements de Quelle date doit-on extraire ?",
"ATTENTION Saisir la date sous le format JJMMAA")
col = InputBox("Dans quelle colonne ont été saisis les paiements ? ")
date_RIOU2 = Left$(date_RIOU, 2) & "/" & Mid(date_RIOU, 3, 2) & "/20" &
Right$(date_RIOU, 2)
' création fichier Versements RIOU

Workbooks.Open Filename:=dir & "matrice_versements_RIOU.xls"
Range("A2") = "Versements RIOU du " & date_RIOU2
Range("K4") = "Vers. " & date_RIOU2
nom_fich = "Versements_RIOU_" & date_RIOU
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2 =
" & date_aci2

If date_etat = date_RIOU2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
date_RIOU = Range("N" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
etat = Range("V" & i)
date_etat = Range("W" & i)
montant = Range(col & i)

' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = creance
Range("E5") = date_defer
Range("F5") = date_RIOU
Range("G5") = mont_payés
Range("H5") = solde
Range("I5") = etat
Range("J5") = date_etat
Range("J5").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("K5") = montant


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:K" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

TTC = 0

For l = 5 To nb_lignes + 4
TTC = TTC + Range("k" & l)
Next l

Range("K" & nb_lignes + 6) = TTC

Range("k" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("K" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"

Range("K" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub

Sub Integration_fichier_suivi()

menu_avip.Hide

MsgBox "Merci de sélectionner le fichier OK_envoi_RIOU à traiter "
Application.FindFile
nomf = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Rows("3:" & nb_lignes + 2).Select
Selection.Insert Shift:=xlDown
Selection.Interior.ColorIndex = xlNone

For i = 3 To nb_lignes + 2
Range("U" & i).Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
Range("O" & i).Select
ActiveCell.FormulaR1C1 = "=SUM(RC[8]:RC[92])"
Range("Q" & i).Select
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-1]-RC[-2]-RC[1]"
Range("U" & i).Select
ActiveCell.FormulaR1C1 = "=mois_comptable(RC[-1])"
Range("V" & i).Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-5]=0,IF(RC[-4]=0,""dossier clôturé"",""ACI""),""en-cours"")"

Next i

For j = 1 To nb_lignes

Windows(nomf).Activate
avip = Range("A" & j)
rev = Range("B" & j)
nom = Range("D" & j)
date_defer = Date
numvoie = Range("E" & j)
typvoie = Range("F" & j)
nomvoie = Range("G" & j)
compl = Range("H" & j)
cp = Range("I" & j)
ville = Range("J" & j)
tel = Range("K" & j)
creance = Range("N" & j)

' sélection fichier ACI pour collage
Windows("suivi_dossiers_avip.xls").Activate
Range("B" & j + 2) = avip
Range("C" & j + 2) = rev
Range("D" & j + 2) = nom
Range("E" & j + 2) = numvoie
Range("F" & j + 2) = typvoie
Range("G" & j + 2) = nomvoie
Range("H" & j + 2) = compl
Range("I" & j + 2) = cp
Range("J" & j + 2) = ville
Range("K" & j + 2) = tel
Range("L" & j + 2) = creance
Range("M" & j + 2) = date_defer

Next j

Windows(nomf).Close



End Sub



Sub traitement_impayes()

Const dir = "s:\CONTENTIEUX_AVIP\RIOU\"
' Const dir = "c:\AVIP\RIOU\"
Dim nomfich As String
Dim debut As Range, fin As Range, maplage As Range, col As Variant
Dim bureau As String, typ As String, nom As String
Dim fichier As String, fichier_resultat As String
Dim i As Integer, nb_lignes As Integer, postit As String
Dim solde As Double, caution As Double, valeur As Double
Dim rue As String, tel1 As String, tel2 As String, montant As Double,
materiel As String

Date_jour = Date
Date_jour = Left(Date, 2) & Mid(Date, 4, 2) & Right(Date, 2)
fichier_resultat = Date_jour & "_resultat.txt"

On Error GoTo 1
Kill (fichier_resultat)
1

num_client = "04999"

' mise en forme fichier AVIP
menu_avip.Hide

MsgBox "Merci de choisir le fichier à traiter "
Application.FindFile

' Rows("1:1").Select
' Selection.Delete Shift:=xlUp
Columns("C:E").Select
Selection.Delete Shift:=xlToLeft
Columns("L:M").Select
Selection.Delete Shift:=xlToLeft
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

For j = 1 To nb_lignes
code_montant = Range("O" & j)
montant = CDbl(Range("N" & j))
Select Case code_montant
Case "C"
Range("N" & j) = -1 * montant
Case "D"
Range("N" & j) = montant
Case ""
Range("N" & j) = montant
End Select
Next j

nom_f = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:= _
dir & "en attente envoi\" & "OK_" & nom_f, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
nom_OK = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next




Range("A1:N" & nb_lignes).Select

Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

For m = 1 To nb_lignes
num_contrat = Range("B" & m)
contrat_suivant = Range("B" & m).Offset(1, 0)
contrat_suivant2 = Range("B" & m).Offset(2, 0)
col_L = Range("L" & m)
longueur = Len(col_L)
If contrat_suivant = "" Then
m = nb_lignes
GoTo fin:
End If
If contrat_suivant = num_contrat Then
If longueur = 11 Or longueur = 12 Then
facture1 = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "€"
Else
facture1 = Range("L" & m)
End If
facture2 = Range("L" & m + 1) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m + 1) & "€"
resultat = facture1 & "+" & facture2
Range("L" & m) = resultat
Range("N" & m) = Range("N" & m) + Range("N" & m + 1)
Rows(m + 1 & ":" & m + 1).Select
Selection.Delete Shift:=xlUp
If contrat_suivant2 = num_contrat Then m = m - 1

Else
Range("L" & m) = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "€"
End If

Next m

fin:

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next
Range("L" & nb_lignes) = Range("L" & nb_lignes) & " du " & Range("M" &
nb_lignes) & " de " & Range("N" & nb_lignes) & " EUR"


Cells.Select
Selection.Copy
Windows("macro_gestion_AVIP.xls").Activate
Sheets("macro").Select
Cells.Select
ActiveSheet.Paste




i = 1
For Each macellule In maplage

result = String(7, " ")
' numéro client RIOU
result = result & num_client
' calcul numéro client interne FT
ref_client = cadrage(Range("B" & i), 20, " ")
result = result & ref_client
' calcul code civilité
civ = civilite(Range("C" & i))
If civ = "" Then civ = "11"
result = result & civ
' calcul nom débiteur
nom = Range("D" & i)
nom_client = cadrage(nom, 30, " ")
result = result & nom_client
' calcul prenom debiteur
result = result & String(30, " ")
' calcul nom rue 1 & 2
num = Range("E" & i)
typvoie = Range("F" & i)
voie = Range("G" & i)
rue = num & " " & typvoie & " " & voie
ad = cadrage(rue, 60, " ")
result = result & ad
' code insee
result = result & insee(Range("I" & i))

' calcul commune
nom_commune = cadrage((Range("J" & i)), 30, " ")
result = result & nom_commune
' calcul code postal
cp = Range("I" & i)
If Len(cp) = 4 Then cp = "0" & cp
result = result & cp
' calcul bureau distributeur
result = result & String(30, " ")
' calcul n° tel 1
If Range("K" & i) = "" Then
tel1 = String(12, " ")
Else:
tel1 = Range("K" & i)
' num1 = Mid(tel1, 1, 2)
' num2 = Mid(tel1, 4, 2)
' num3 = Mid(tel1, 7, 2)
' num4 = Mid(tel1, 10, 2)
' num5 = Mid(tel1, 13, 2)
' tel1 = num1 + num2 + num3 + num4 + num5
End If
result = result & cadrage(tel1, 12, " ")
' calcul n° tel 2
result = result & cadrage(tel2, 12, " ")
' calcul n° RM/RC
result = result & String(15, " ")
' calcul siècle facture & date
Daters = Range("M" & i)
siecle = " 20"
annee = Mid(Daters, 3, 2)
mois = Mid(Daters, 5, 2)
siecle_date = siecle & " " & annee & mois
result = result & siecle_date

' calcul montant privilégié + tarif
result = result & " " & "000000000,00" & "B"
' calcul type créance + MOntant principal en francs français
If civ = "03" Or civ = "04" Or civ = "05" Or civ = "15" Or civ = "18" Or civ
= "19" Or civ = "20" Then
typ = "1"
Else: typ = "2"
End If
result = result & typ & " " & "000000000,00"

' calcul siecle mise en demeure + date mise en demeure
result = result & " 00 000000"
' calcul libellé facture + fondement créance
result = result & String(160, " ")
' calcul code option + code pays
result = result & "201"
'calcul postit
col = "L" & i
postit = Range(col)
result = result & cadrage(postit, 80, " ")
' calcul litige + type débiteur + historique + code devise + montant
privilégié

adpost = cadrage(Range("H" & i), 73, " ")
result = result & "NP" & adpost & "EU" & " " & "000000000,00"
' calcul montant en principal
solde = CDbl(Range("N" & i))

principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100
montant = Str$(montant_formaté)
longueur = Len(montant)
partie_gauche = Left$(montant, longueur - 2)
partie_droite = Right$(montant, 2)
montant_final = partie_gauche & "," & partie_droite

montant = Mid$(montant_final, 2, Len(montant_final) - 1)
' MsgBox "resultat - montant final : " & montant & " longueur " & Len(montant)

result = result & cadragedroite(montant)

Open fichier_resultat For Append As #1
Print #1, result
Close #1
i = i + 1
Next macellule



' Windows("macro_fi").Activate
Cells.Select
Selection.Delete
Windows(nom_OK).Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox "Le fichier " & site & "_resultat peut être déposé maintenant sur le
site @ de RIOU ", vbOKOnly + vbInformation

menu_avip.Show
End Sub






Function cadrage(chaine As String, longueur As Integer, car As String) As
String

Dim l1 As Integer, nb_espaces As Integer

l1 = Len(chaine)
nb_espaces = longueur - l1

If nb_espaces > 0 Then
cadrage = chaine & String(nb_espaces, car)
Else: cadrage = Left(chaine, longueur)
End If

End Function

Function cadragedroite(chaine As Variant) As String

Dim l2 As Integer, nb_zero As Integer

l2 = Len(chaine)
cadragedroite = " " & String(12 - l2, "0") & chaine

End Function

Function civilite(civ As String) As String

If UCase(civ) = "SA" Then civilite = "01"
If UCase(civ) = "SARL" Then civilite = "02"
If UCase(civ) = "M" Then civilite = "03"
If UCase(civ) = "MME" Then civilite = "04"
If UCase(civ) = "MLLE" Then civilite = "05"
If UCase(civ) = "STE" Then civilite = "06"
If UCase(civ) = "ETS" Then civilite = "07"
If UCase(civ) = "ASS" Then civilite = "10"
If UCase(civ) = "" Then civilite = "11"
If UCase(civ) = "SCI" Then civilite = "13"
If UCase(civ) = "EURL" Then civilite = "14"
If UCase(civ) = "MTR" Then civilite = "15"
If UCase(civ) = "M.MME" Then civilite = "18"
If UCase(civ) = "DR" Then civilite = "20"
If UCase(civ) = "SCP" Then civilite = "22"
If UCase(civ) = "BAR" Then civilit = "07"

End Function

Function commune(cp As String) As String

' Windows("macro_fi").Activate
Set C = Worksheets("liste_villes").Columns("D").Find(cp)
commune = cadrage(C.Offset(0, -2), 30, " ")

End Function
Function insee(cp As String)

' Windows("macro_fi").Activate
On Error GoTo finf:
Set C = Worksheets("liste_villes").Columns("D").Find(cp)

insee1 = C.Offset(0, -1)
If Len(insee1) = 5 Then
insee = insee1
Else
insee = "0" & insee1
End If

' MsgBox "resultat = " & insee
finf:
If Len(cp) = 5 Then
insee = cp
Else
insee = "0" & cp
End If
End Function

Merci pour votre soutien.





--
ALF

10 réponses

1 2
Avatar
JLuc
*Bonjour ALF*,
Avant d'aller plus loin dans la lecture, tu peux remplacer ce bout par
nb_lignes = maplage.Rows
Ca evite une boucle qui prend quand meme du temps

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
*Bonjour ALF*,

De meme, enleve :
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Remplace par :
etat = Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("V" &
i)
date_etat =
Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("W" & i)

For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
Finalement, au vu de la suite, il serait plus judicieux d'utiliser
With...End With

With Workbook("suivi_dossiers_avip.xls").Sheets("AVIP")
etat = .Range("V" & i)
date_etat = .Range("W" & i)
...
...
...


*Bonjour ALF*,

De meme, enleve :
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Remplace par :
etat = Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("V" & i)
date_etat = Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("W" & i)

For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O


Avatar
ALF
Bonjour,
Merci j-luc pour ces modif tres utiles,cependant cela ne reponds pas au
probleme principal..
--
ALF



Finalement, au vu de la suite, il serait plus judicieux d'utiliser
With...End With

With Workbook("suivi_dossiers_avip.xls").Sheets("AVIP")
etat = .Range("V" & i)
date_etat = .Range("W" & i)
...
...
...


*Bonjour ALF*,

De meme, enleve :
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Remplace par :
etat = Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("V" & i)
date_etat = Workbook("suivi_dossiers_avip.xls").Sheets("AVIP").Range("W" & i)

For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O







Avatar
Phil
Bonjour..

C'est long... mais l'erreur ne viendrait elle pas de ces lignes :
principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100



le format "#########,##0.00" me paraît étrange et susceptible, une fois *
par cent de générer cette erreur ..

Bon courage

"ALF" a écrit dans le message de news:


Bonjour,
j'ai une macro dont une procedure (sub traitement impayes) me retourne un
fichier .xls et un fichier.txt.
le fichier .xls est ok mais le fichier.txt me renvoie un montant
erronné.il
senblerait que la macro supprime le 1er chiffre du montant ,prend la
chaine
de chiffre(limité à 5 chiffres max.) sans la virgule puis rajoute la
virgule
suivi de 2 chiffres.
ex si montant R3,13 on a dans le fichier.txt 2313,13
je n'arrive pas à trouver ce qui pose probleme dans la procedure..pouvez
vous m'eclairer...je vous laisse la macro

Sub choix()

menu_avip.Show

End Sub



Sub extraction_ACI()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPACI"
' Const DIR = "C:avipACI"

menu_avip.Hide

date_aci = InputBox("Les ACI de Quelle date doit-on extraire ?",
"ATTENTION
Saisir la date sous le format JJMMAA")
date_aci2 = Left$(date_aci, 2) & "/" & Mid(date_aci, 3, 2) & "/20" &
Right$(date_aci, 2)
' création fichier ACI _ date du jour

Workbooks.Open Filename:=dir & "matrice_ACI.xls"
Range("A2") = "ACI à saisir dans MISTRAL - " & date_aci2
nom_fich = "ACI_" & date_aci
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2 > " & date_aci2

If etat = "ACI" And date_etat = date_aci2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
mont_ACI = Range("R" & i)
motif_ACI = Range("S" & i)
' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = date_defer
Range("E5") = creance
Range("F5") = mont_payés
Range("G5") = solde
Range("H5") = mont_ACI
Range("J5") = mont_ACI / 1.196
Range("I5") = mont_ACI - mont_ACI / 1.196
Range("K5") = motif_ACI
Range("N5") = etat
Range("O5") = date_etat
Range("O5").Select
Selection.NumberFormat = "dd/mm/yy;@"


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:O" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

TTC = 0
TVA = 0
HT = 0

For k = 5 To nb_lignes + 4
TTC = TTC + Range("H" & k)
TVA = TVA + Range("I" & k)
HT = HT + Range("J" & k)
Next k

Range("H" & nb_lignes + 6) = TTC
Range("I" & nb_lignes + 6) = TVA
Range("J" & nb_lignes + 6) = HT


Range("H" & nb_lignes + 6 & ":J" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("H" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("I" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("J" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("H" & j + 1 & ":J" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub


Sub extraction_versement()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPRIOU"
'Const DIR = "C:avipRIOU"

menu_avip.Hide

date_RIOU = InputBox("Les Versements de Quelle date doit-on extraire ?",
"ATTENTION Saisir la date sous le format JJMMAA")
col = InputBox("Dans quelle colonne ont été saisis les paiements ? ")
date_RIOU2 = Left$(date_RIOU, 2) & "/" & Mid(date_RIOU, 3, 2) & "/20" &
Right$(date_RIOU, 2)
' création fichier Versements RIOU

Workbooks.Open Filename:=dir & "matrice_versements_RIOU.xls"
Range("A2") = "Versements RIOU du " & date_RIOU2
Range("K4") = "Vers. " & date_RIOU2
nom_fich = "Versements_RIOU_" & date_RIOU
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2 > " & date_aci2

If date_etat = date_RIOU2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
date_RIOU = Range("N" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
etat = Range("V" & i)
date_etat = Range("W" & i)
montant = Range(col & i)

' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = creance
Range("E5") = date_defer
Range("F5") = date_RIOU
Range("G5") = mont_payés
Range("H5") = solde
Range("I5") = etat
Range("J5") = date_etat
Range("J5").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("K5") = montant


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:K" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

TTC = 0

For l = 5 To nb_lignes + 4
TTC = TTC + Range("k" & l)
Next l

Range("K" & nb_lignes + 6) = TTC

Range("k" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("K" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"

Range("K" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub

Sub Integration_fichier_suivi()

menu_avip.Hide

MsgBox "Merci de sélectionner le fichier OK_envoi_RIOU à traiter "
Application.FindFile
nomf = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Rows("3:" & nb_lignes + 2).Select
Selection.Insert Shift:=xlDown
Selection.Interior.ColorIndex = xlNone

For i = 3 To nb_lignes + 2
Range("U" & i).Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
Range("O" & i).Select
ActiveCell.FormulaR1C1 = "=SUM(RC[8]:RC[92])"
Range("Q" & i).Select
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-1]-RC[-2]-RC[1]"
Range("U" & i).Select
ActiveCell.FormulaR1C1 = "=mois_comptable(RC[-1])"
Range("V" & i).Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-5]=0,IF(RC[-4]=0,""dossier
clôturé"",""ACI""),""en-cours"")"

Next i

For j = 1 To nb_lignes

Windows(nomf).Activate
avip = Range("A" & j)
rev = Range("B" & j)
nom = Range("D" & j)
date_defer = Date
numvoie = Range("E" & j)
typvoie = Range("F" & j)
nomvoie = Range("G" & j)
compl = Range("H" & j)
cp = Range("I" & j)
ville = Range("J" & j)
tel = Range("K" & j)
creance = Range("N" & j)

' sélection fichier ACI pour collage
Windows("suivi_dossiers_avip.xls").Activate
Range("B" & j + 2) = avip
Range("C" & j + 2) = rev
Range("D" & j + 2) = nom
Range("E" & j + 2) = numvoie
Range("F" & j + 2) = typvoie
Range("G" & j + 2) = nomvoie
Range("H" & j + 2) = compl
Range("I" & j + 2) = cp
Range("J" & j + 2) = ville
Range("K" & j + 2) = tel
Range("L" & j + 2) = creance
Range("M" & j + 2) = date_defer

Next j

Windows(nomf).Close



End Sub



Sub traitement_impayes()

Const dir = "s:CONTENTIEUX_AVIPRIOU"
' Const dir = "c:AVIPRIOU"
Dim nomfich As String
Dim debut As Range, fin As Range, maplage As Range, col As Variant
Dim bureau As String, typ As String, nom As String
Dim fichier As String, fichier_resultat As String
Dim i As Integer, nb_lignes As Integer, postit As String
Dim solde As Double, caution As Double, valeur As Double
Dim rue As String, tel1 As String, tel2 As String, montant As Double,
materiel As String

Date_jour = Date
Date_jour = Left(Date, 2) & Mid(Date, 4, 2) & Right(Date, 2)
fichier_resultat = Date_jour & "_resultat.txt"

On Error GoTo 1
Kill (fichier_resultat)
1

num_client = "04999"

' mise en forme fichier AVIP
menu_avip.Hide

MsgBox "Merci de choisir le fichier à traiter "
Application.FindFile

' Rows("1:1").Select
' Selection.Delete Shift:=xlUp
Columns("C:E").Select
Selection.Delete Shift:=xlToLeft
Columns("L:M").Select
Selection.Delete Shift:=xlToLeft
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

For j = 1 To nb_lignes
code_montant = Range("O" & j)
montant = CDbl(Range("N" & j))
Select Case code_montant
Case "C"
Range("N" & j) = -1 * montant
Case "D"
Range("N" & j) = montant
Case ""
Range("N" & j) = montant
End Select
Next j

nom_f = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:= _
dir & "en attente envoi" & "OK_" & nom_f, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
nom_OK = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next




Range("A1:N" & nb_lignes).Select

Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

For m = 1 To nb_lignes
num_contrat = Range("B" & m)
contrat_suivant = Range("B" & m).Offset(1, 0)
contrat_suivant2 = Range("B" & m).Offset(2, 0)
col_L = Range("L" & m)
longueur = Len(col_L)
If contrat_suivant = "" Then
m = nb_lignes
GoTo fin:
End If
If contrat_suivant = num_contrat Then
If longueur = 11 Or longueur = 12 Then
facture1 = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "?"
Else
facture1 = Range("L" & m)
End If
facture2 = Range("L" & m + 1) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m + 1) & "?"
resultat = facture1 & "+" & facture2
Range("L" & m) = resultat
Range("N" & m) = Range("N" & m) + Range("N" & m + 1)
Rows(m + 1 & ":" & m + 1).Select
Selection.Delete Shift:=xlUp
If contrat_suivant2 = num_contrat Then m = m - 1

Else
Range("L" & m) = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "?"
End If

Next m

fin:

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next
Range("L" & nb_lignes) = Range("L" & nb_lignes) & " du " & Range("M" &
nb_lignes) & " de " & Range("N" & nb_lignes) & " EUR"


Cells.Select
Selection.Copy
Windows("macro_gestion_AVIP.xls").Activate
Sheets("macro").Select
Cells.Select
ActiveSheet.Paste




i = 1
For Each macellule In maplage

result = String(7, " ")
' numéro client RIOU
result = result & num_client
' calcul numéro client interne FT
ref_client = cadrage(Range("B" & i), 20, " ")
result = result & ref_client
' calcul code civilité
civ = civilite(Range("C" & i))
If civ = "" Then civ = "11"
result = result & civ
' calcul nom débiteur
nom = Range("D" & i)
nom_client = cadrage(nom, 30, " ")
result = result & nom_client
' calcul prenom debiteur
result = result & String(30, " ")
' calcul nom rue 1 & 2
num = Range("E" & i)
typvoie = Range("F" & i)
voie = Range("G" & i)
rue = num & " " & typvoie & " " & voie
ad = cadrage(rue, 60, " ")
result = result & ad
' code insee
result = result & insee(Range("I" & i))

' calcul commune
nom_commune = cadrage((Range("J" & i)), 30, " ")
result = result & nom_commune
' calcul code postal
cp = Range("I" & i)
If Len(cp) = 4 Then cp = "0" & cp
result = result & cp
' calcul bureau distributeur
result = result & String(30, " ")
' calcul n° tel 1
If Range("K" & i) = "" Then
tel1 = String(12, " ")
Else:
tel1 = Range("K" & i)
' num1 = Mid(tel1, 1, 2)
' num2 = Mid(tel1, 4, 2)
' num3 = Mid(tel1, 7, 2)
' num4 = Mid(tel1, 10, 2)
' num5 = Mid(tel1, 13, 2)
' tel1 = num1 + num2 + num3 + num4 + num5
End If
result = result & cadrage(tel1, 12, " ")
' calcul n° tel 2
result = result & cadrage(tel2, 12, " ")
' calcul n° RM/RC
result = result & String(15, " ")
' calcul siècle facture & date
Daters = Range("M" & i)
siecle = " 20"
annee = Mid(Daters, 3, 2)
mois = Mid(Daters, 5, 2)
siecle_date = siecle & " " & annee & mois
result = result & siecle_date

' calcul montant privilégié + tarif
result = result & " " & "000000000,00" & "B"
' calcul type créance + MOntant principal en francs français
If civ = "03" Or civ = "04" Or civ = "05" Or civ = "15" Or civ = "18" Or
civ
= "19" Or civ = "20" Then
typ = "1"
Else: typ = "2"
End If
result = result & typ & " " & "000000000,00"

' calcul siecle mise en demeure + date mise en demeure
result = result & " 00 000000"
' calcul libellé facture + fondement créance
result = result & String(160, " ")
' calcul code option + code pays
result = result & "201"
'calcul postit
col = "L" & i
postit = Range(col)
result = result & cadrage(postit, 80, " ")
' calcul litige + type débiteur + historique + code devise + montant
privilégié

adpost = cadrage(Range("H" & i), 73, " ")
result = result & "NP" & adpost & "EU" & " " & "000000000,00"
' calcul montant en principal
solde = CDbl(Range("N" & i))

principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100
montant = Str$(montant_formaté)
longueur = Len(montant)
partie_gauche = Left$(montant, longueur - 2)
partie_droite = Right$(montant, 2)
montant_final = partie_gauche & "," & partie_droite

montant = Mid$(montant_final, 2, Len(montant_final) - 1)
' MsgBox "resultat - montant final : " & montant & " longueur " &
Len(montant)

result = result & cadragedroite(montant)

Open fichier_resultat For Append As #1
Print #1, result
Close #1
i = i + 1
Next macellule



' Windows("macro_fi").Activate
Cells.Select
Selection.Delete
Windows(nom_OK).Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox "Le fichier " & site & "_resultat peut être déposé maintenant sur
le
site @ de RIOU ", vbOKOnly + vbInformation

menu_avip.Show
End Sub






Function cadrage(chaine As String, longueur As Integer, car As String) As
String

Dim l1 As Integer, nb_espaces As Integer

l1 = Len(chaine)
nb_espaces = longueur - l1

If nb_espaces > 0 Then
cadrage = chaine & String(nb_espaces, car)
Else: cadrage = Left(chaine, longueur)
End If

End Function

Function cadragedroite(chaine As Variant) As String

Dim l2 As Integer, nb_zero As Integer

l2 = Len(chaine)
cadragedroite = " " & String(12 - l2, "0") & chaine

End Function

Function civilite(civ As String) As String

If UCase(civ) = "SA" Then civilite = "01"
If UCase(civ) = "SARL" Then civilite = "02"
If UCase(civ) = "M" Then civilite = "03"
If UCase(civ) = "MME" Then civilite = "04"
If UCase(civ) = "MLLE" Then civilite = "05"
If UCase(civ) = "STE" Then civilite = "06"
If UCase(civ) = "ETS" Then civilite = "07"
If UCase(civ) = "ASS" Then civilite = "10"
If UCase(civ) = "" Then civilite = "11"
If UCase(civ) = "SCI" Then civilite = "13"
If UCase(civ) = "EURL" Then civilite = "14"
If UCase(civ) = "MTR" Then civilite = "15"
If UCase(civ) = "M.MME" Then civilite = "18"
If UCase(civ) = "DR" Then civilite = "20"
If UCase(civ) = "SCP" Then civilite = "22"
If UCase(civ) = "BAR" Then civilit = "07"

End Function

Function commune(cp As String) As String

' Windows("macro_fi").Activate
Set C = Worksheets("liste_villes").Columns("D").Find(cp)
commune = cadrage(C.Offset(0, -2), 30, " ")

End Function
Function insee(cp As String)

' Windows("macro_fi").Activate
On Error GoTo finf:
Set C = Worksheets("liste_villes").Columns("D").Find(cp)

insee1 = C.Offset(0, -1)
If Len(insee1) = 5 Then
insee = insee1
Else
insee = "0" & insee1
End If

' MsgBox "resultat = " & insee
finf:
If Len(cp) = 5 Then
insee = cp
Else
insee = "0" & cp
End If
End Function

Merci pour votre soutien.





--
ALF


Avatar
JLuc
cependant cela ne reponds pas au
probleme principal..


Je sais, j'avoue que j'ai pas eu le temps d'aller plus loin. Mais je
vais regarder plus avant ce soir (c'est une sacre macro qui demande un
peu de temps) :')
J'oublie pas !

--
JLuc

Avatar
Phil
oups....
trop rapide.
aprés verif, ça ne vient pas de là...
désolé
"Phil" a écrit dans le message de news:
443614c5$0$1150$
Bonjour..

C'est long... mais l'erreur ne viendrait elle pas de ces lignes :
principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100



le format "#########,##0.00" me paraît étrange et susceptible, une fois *
par cent de générer cette erreur ..

Bon courage

"ALF" a écrit dans le message de news:


Bonjour,
j'ai une macro dont une procedure (sub traitement impayes) me retourne un
fichier .xls et un fichier.txt.
le fichier .xls est ok mais le fichier.txt me renvoie un montant
erronné.il
senblerait que la macro supprime le 1er chiffre du montant ,prend la
chaine
de chiffre(limité à 5 chiffres max.) sans la virgule puis rajoute la
virgule
suivi de 2 chiffres.
ex si montant R3,13 on a dans le fichier.txt 2313,13
je n'arrive pas à trouver ce qui pose probleme dans la procedure..pouvez
vous m'eclairer...je vous laisse la macro

Sub choix()

menu_avip.Show

End Sub



Sub extraction_ACI()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPACI"
' Const DIR = "C:avipACI"

menu_avip.Hide

date_aci = InputBox("Les ACI de Quelle date doit-on extraire ?",
"ATTENTION
Saisir la date sous le format JJMMAA")
date_aci2 = Left$(date_aci, 2) & "/" & Mid(date_aci, 3, 2) & "/20" &
Right$(date_aci, 2)
' création fichier ACI _ date du jour

Workbooks.Open Filename:=dir & "matrice_ACI.xls"
Range("A2") = "ACI à saisir dans MISTRAL - " & date_aci2
nom_fich = "ACI_" & date_aci
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2
" & date_aci2



If etat = "ACI" And date_etat = date_aci2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
mont_ACI = Range("R" & i)
motif_ACI = Range("S" & i)
' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = date_defer
Range("E5") = creance
Range("F5") = mont_payés
Range("G5") = solde
Range("H5") = mont_ACI
Range("J5") = mont_ACI / 1.196
Range("I5") = mont_ACI - mont_ACI / 1.196
Range("K5") = motif_ACI
Range("N5") = etat
Range("O5") = date_etat
Range("O5").Select
Selection.NumberFormat = "dd/mm/yy;@"


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:O" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

TTC = 0
TVA = 0
HT = 0

For k = 5 To nb_lignes + 4
TTC = TTC + Range("H" & k)
TVA = TVA + Range("I" & k)
HT = HT + Range("J" & k)
Next k

Range("H" & nb_lignes + 6) = TTC
Range("I" & nb_lignes + 6) = TVA
Range("J" & nb_lignes + 6) = HT


Range("H" & nb_lignes + 6 & ":J" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("H" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("I" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("J" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("H" & j + 1 & ":J" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub


Sub extraction_versement()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPRIOU"
'Const DIR = "C:avipRIOU"

menu_avip.Hide

date_RIOU = InputBox("Les Versements de Quelle date doit-on extraire ?",
"ATTENTION Saisir la date sous le format JJMMAA")
col = InputBox("Dans quelle colonne ont été saisis les paiements ? ")
date_RIOU2 = Left$(date_RIOU, 2) & "/" & Mid(date_RIOU, 3, 2) & "/20" &
Right$(date_RIOU, 2)
' création fichier Versements RIOU

Workbooks.Open Filename:=dir & "matrice_versements_RIOU.xls"
Range("A2") = "Versements RIOU du " & date_RIOU2
Range("K4") = "Vers. " & date_RIOU2
nom_fich = "Versements_RIOU_" & date_RIOU
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2
" & date_aci2



If date_etat = date_RIOU2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
date_RIOU = Range("N" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
etat = Range("V" & i)
date_etat = Range("W" & i)
montant = Range(col & i)

' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = creance
Range("E5") = date_defer
Range("F5") = date_RIOU
Range("G5") = mont_payés
Range("H5") = solde
Range("I5") = etat
Range("J5") = date_etat
Range("J5").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("K5") = montant


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:K" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

TTC = 0

For l = 5 To nb_lignes + 4
TTC = TTC + Range("k" & l)
Next l

Range("K" & nb_lignes + 6) = TTC

Range("k" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("K" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"

Range("K" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub

Sub Integration_fichier_suivi()

menu_avip.Hide

MsgBox "Merci de sélectionner le fichier OK_envoi_RIOU à traiter "
Application.FindFile
nomf = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Rows("3:" & nb_lignes + 2).Select
Selection.Insert Shift:=xlDown
Selection.Interior.ColorIndex = xlNone

For i = 3 To nb_lignes + 2
Range("U" & i).Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
Range("O" & i).Select
ActiveCell.FormulaR1C1 = "=SUM(RC[8]:RC[92])"
Range("Q" & i).Select
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-1]-RC[-2]-RC[1]"
Range("U" & i).Select
ActiveCell.FormulaR1C1 = "=mois_comptable(RC[-1])"
Range("V" & i).Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-5]=0,IF(RC[-4]=0,""dossier
clôturé"",""ACI""),""en-cours"")"

Next i

For j = 1 To nb_lignes

Windows(nomf).Activate
avip = Range("A" & j)
rev = Range("B" & j)
nom = Range("D" & j)
date_defer = Date
numvoie = Range("E" & j)
typvoie = Range("F" & j)
nomvoie = Range("G" & j)
compl = Range("H" & j)
cp = Range("I" & j)
ville = Range("J" & j)
tel = Range("K" & j)
creance = Range("N" & j)

' sélection fichier ACI pour collage
Windows("suivi_dossiers_avip.xls").Activate
Range("B" & j + 2) = avip
Range("C" & j + 2) = rev
Range("D" & j + 2) = nom
Range("E" & j + 2) = numvoie
Range("F" & j + 2) = typvoie
Range("G" & j + 2) = nomvoie
Range("H" & j + 2) = compl
Range("I" & j + 2) = cp
Range("J" & j + 2) = ville
Range("K" & j + 2) = tel
Range("L" & j + 2) = creance
Range("M" & j + 2) = date_defer

Next j

Windows(nomf).Close



End Sub



Sub traitement_impayes()

Const dir = "s:CONTENTIEUX_AVIPRIOU"
' Const dir = "c:AVIPRIOU"
Dim nomfich As String
Dim debut As Range, fin As Range, maplage As Range, col As Variant
Dim bureau As String, typ As String, nom As String
Dim fichier As String, fichier_resultat As String
Dim i As Integer, nb_lignes As Integer, postit As String
Dim solde As Double, caution As Double, valeur As Double
Dim rue As String, tel1 As String, tel2 As String, montant As Double,
materiel As String

Date_jour = Date
Date_jour = Left(Date, 2) & Mid(Date, 4, 2) & Right(Date, 2)
fichier_resultat = Date_jour & "_resultat.txt"

On Error GoTo 1
Kill (fichier_resultat)
1

num_client = "04999"

' mise en forme fichier AVIP
menu_avip.Hide

MsgBox "Merci de choisir le fichier à traiter "
Application.FindFile

' Rows("1:1").Select
' Selection.Delete Shift:=xlUp
Columns("C:E").Select
Selection.Delete Shift:=xlToLeft
Columns("L:M").Select
Selection.Delete Shift:=xlToLeft
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

For j = 1 To nb_lignes
code_montant = Range("O" & j)
montant = CDbl(Range("N" & j))
Select Case code_montant
Case "C"
Range("N" & j) = -1 * montant
Case "D"
Range("N" & j) = montant
Case ""
Range("N" & j) = montant
End Select
Next j

nom_f = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:= _
dir & "en attente envoi" & "OK_" & nom_f, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
nom_OK = ActiveWorkbook.Name

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next




Range("A1:N" & nb_lignes).Select

Selection.Sort Key1:=Range("B1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

For m = 1 To nb_lignes
num_contrat = Range("B" & m)
contrat_suivant = Range("B" & m).Offset(1, 0)
contrat_suivant2 = Range("B" & m).Offset(2, 0)
col_L = Range("L" & m)
longueur = Len(col_L)
If contrat_suivant = "" Then
m = nb_lignes
GoTo fin:
End If
If contrat_suivant = num_contrat Then
If longueur = 11 Or longueur = 12 Then
facture1 = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "?"
Else
facture1 = Range("L" & m)
End If
facture2 = Range("L" & m + 1) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m + 1) & "?"
resultat = facture1 & "+" & facture2
Range("L" & m) = resultat
Range("N" & m) = Range("N" & m) + Range("N" & m + 1)
Rows(m + 1 & ":" & m + 1).Select
Selection.Delete Shift:=xlUp
If contrat_suivant2 = num_contrat Then m = m - 1

Else
Range("L" & m) = Range("L" & m) & "*" & Left(Range("M" & m), 6) &
Right(Range("M" & m), 2) & "*" & Range("N" & m) & "?"
End If

Next m

fin:

Set debut = Range("A1")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next
Range("L" & nb_lignes) = Range("L" & nb_lignes) & " du " & Range("M" &
nb_lignes) & " de " & Range("N" & nb_lignes) & " EUR"


Cells.Select
Selection.Copy
Windows("macro_gestion_AVIP.xls").Activate
Sheets("macro").Select
Cells.Select
ActiveSheet.Paste




i = 1
For Each macellule In maplage

result = String(7, " ")
' numéro client RIOU
result = result & num_client
' calcul numéro client interne FT
ref_client = cadrage(Range("B" & i), 20, " ")
result = result & ref_client
' calcul code civilité
civ = civilite(Range("C" & i))
If civ = "" Then civ = "11"
result = result & civ
' calcul nom débiteur
nom = Range("D" & i)
nom_client = cadrage(nom, 30, " ")
result = result & nom_client
' calcul prenom debiteur
result = result & String(30, " ")
' calcul nom rue 1 & 2
num = Range("E" & i)
typvoie = Range("F" & i)
voie = Range("G" & i)
rue = num & " " & typvoie & " " & voie
ad = cadrage(rue, 60, " ")
result = result & ad
' code insee
result = result & insee(Range("I" & i))

' calcul commune
nom_commune = cadrage((Range("J" & i)), 30, " ")
result = result & nom_commune
' calcul code postal
cp = Range("I" & i)
If Len(cp) = 4 Then cp = "0" & cp
result = result & cp
' calcul bureau distributeur
result = result & String(30, " ")
' calcul n° tel 1
If Range("K" & i) = "" Then
tel1 = String(12, " ")
Else:
tel1 = Range("K" & i)
' num1 = Mid(tel1, 1, 2)
' num2 = Mid(tel1, 4, 2)
' num3 = Mid(tel1, 7, 2)
' num4 = Mid(tel1, 10, 2)
' num5 = Mid(tel1, 13, 2)
' tel1 = num1 + num2 + num3 + num4 + num5
End If
result = result & cadrage(tel1, 12, " ")
' calcul n° tel 2
result = result & cadrage(tel2, 12, " ")
' calcul n° RM/RC
result = result & String(15, " ")
' calcul siècle facture & date
Daters = Range("M" & i)
siecle = " 20"
annee = Mid(Daters, 3, 2)
mois = Mid(Daters, 5, 2)
siecle_date = siecle & " " & annee & mois
result = result & siecle_date

' calcul montant privilégié + tarif
result = result & " " & "000000000,00" & "B"
' calcul type créance + MOntant principal en francs français
If civ = "03" Or civ = "04" Or civ = "05" Or civ = "15" Or civ = "18" Or
civ
= "19" Or civ = "20" Then
typ = "1"
Else: typ = "2"
End If
result = result & typ & " " & "000000000,00"

' calcul siecle mise en demeure + date mise en demeure
result = result & " 00 000000"
' calcul libellé facture + fondement créance
result = result & String(160, " ")
' calcul code option + code pays
result = result & "201"
'calcul postit
col = "L" & i
postit = Range(col)
result = result & cadrage(postit, 80, " ")
' calcul litige + type débiteur + historique + code devise + montant
privilégié

adpost = cadrage(Range("H" & i), 73, " ")
result = result & "NP" & adpost & "EU" & " " & "000000000,00"
' calcul montant en principal
solde = CDbl(Range("N" & i))

principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100
montant = Str$(montant_formaté)
longueur = Len(montant)
partie_gauche = Left$(montant, longueur - 2)
partie_droite = Right$(montant, 2)
montant_final = partie_gauche & "," & partie_droite

montant = Mid$(montant_final, 2, Len(montant_final) - 1)
' MsgBox "resultat - montant final : " & montant & " longueur " &
Len(montant)

result = result & cadragedroite(montant)

Open fichier_resultat For Append As #1
Print #1, result
Close #1
i = i + 1
Next macellule



' Windows("macro_fi").Activate
Cells.Select
Selection.Delete
Windows(nom_OK).Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox "Le fichier " & site & "_resultat peut être déposé maintenant sur
le
site @ de RIOU ", vbOKOnly + vbInformation

menu_avip.Show
End Sub






Function cadrage(chaine As String, longueur As Integer, car As String) As
String

Dim l1 As Integer, nb_espaces As Integer

l1 = Len(chaine)
nb_espaces = longueur - l1

If nb_espaces > 0 Then
cadrage = chaine & String(nb_espaces, car)
Else: cadrage = Left(chaine, longueur)
End If

End Function

Function cadragedroite(chaine As Variant) As String

Dim l2 As Integer, nb_zero As Integer

l2 = Len(chaine)
cadragedroite = " " & String(12 - l2, "0") & chaine

End Function

Function civilite(civ As String) As String

If UCase(civ) = "SA" Then civilite = "01"
If UCase(civ) = "SARL" Then civilite = "02"
If UCase(civ) = "M" Then civilite = "03"
If UCase(civ) = "MME" Then civilite = "04"
If UCase(civ) = "MLLE" Then civilite = "05"
If UCase(civ) = "STE" Then civilite = "06"
If UCase(civ) = "ETS" Then civilite = "07"
If UCase(civ) = "ASS" Then civilite = "10"
If UCase(civ) = "" Then civilite = "11"
If UCase(civ) = "SCI" Then civilite = "13"
If UCase(civ) = "EURL" Then civilite = "14"
If UCase(civ) = "MTR" Then civilite = "15"
If UCase(civ) = "M.MME" Then civilite = "18"
If UCase(civ) = "DR" Then civilite = "20"
If UCase(civ) = "SCP" Then civilite = "22"
If UCase(civ) = "BAR" Then civilit = "07"

End Function

Function commune(cp As String) As String

' Windows("macro_fi").Activate
Set C = Worksheets("liste_villes").Columns("D").Find(cp)
commune = cadrage(C.Offset(0, -2), 30, " ")

End Function
Function insee(cp As String)

' Windows("macro_fi").Activate
On Error GoTo finf:
Set C = Worksheets("liste_villes").Columns("D").Find(cp)

insee1 = C.Offset(0, -1)
If Len(insee1) = 5 Then
insee = insee1
Else
insee = "0" & insee1
End If

' MsgBox "resultat = " & insee
finf:
If Len(cp) = 5 Then
insee = cp
Else
insee = "0" & cp
End If
End Function

Merci pour votre soutien.





--
ALF








Avatar
ALF
Re,
Phil,je pense effectivement à cette histoire de format et on ne doit pas en
etre loin mais apparemment cela ne suffit pas....
je laisse a toute fin utile le fichier.xls qui est bon et le fichier.txt qui
pose probleme....

fichier.xls:
ANC REV000017957 STE EURL HOTEL 3 rue E. Freyssimet ZI Le
Royeux 02430 GAUCHY 0323089797 VFAC1482265*20051222*523,13€ 20051222 523,13 D
ANC REV000018031 STE KIOSQUE LE MARAIS avenue Diderot Parking Centre
Leclerc 10100 ROMILLY SUR
SEINE 0325211978 VFAC1488317*20051231*218,41€+VFAC1495754*20051231*717,09€+VFAC1500872*20051231*289,65€+VFAC1505954*20051231*289,66€+VFAC1511736*20051231*294,38€ 20051231 1809,19 D
ANF REV000023141 STE PRESSE DES 104 4 rue des
104 76700 HARFLEUR 0235470580 VFAC1435839*20051029*311,57€+VFAC1440572*20051029*383,88€+VFAC1405850*20051029*403,29€+VFAC1407326*20051029*246,93€+VFAC1453656*20051029*180,45€+VFAC1457662*20051029*383,7€+VFAC1472981*20051029*425,37€+VFAC1479857*20051029*218,41€ 20051029 2553,60 D
ANF REV000024805 STE SARL MONDIAL SERVI 6 place des
Oriels 28100 DREUX 0237625330 VFAC1405920*20050930*1783,24€ 20050930 1783,24 D
ANC REV000032335 MME LIDIA SZCZEPANIAK 14/16 rue Léon
Dehuz 08000 CHARLEVILLE
MEZIERES 0324370485 VFAC1439840*20051109*1703,97€ 20051109 1703,97 D
AQ5 REV000034266 MME DELMOTTE Danielle 39 rue des Fossets 63700 MONTAIGUT
EN
COMBRAILLES 0473854008 VFAC1328198*20050711*665,69€+VFAC1300353*20050711*575,99€+RGA0058114*20050711*-719,99€ 20050711 521,69 D
AM7 REV000035056 STE SYED TELECOM 248 rue du Faubourg St
Martin 75010 PARIS 0140349935 VFAC1487129*20051227*20110,74€+VFAC1499345*20051227*94,99€+VFAC1482703*20051227*16023,79€ 20051227 36229,52 D
ANC REV000038462 STE PRESSE CHAMVOUX 5 rue de
Frouard 54250 CHAMPIGNEULLES 0383381386 VFAC1381535*20050906*140,94€+VFAC1381536*20050906*311,87€+VFAC1403106*20050906*303,2€+VFAC1407786*20050906*113,95€+VFAC1439198*20050906*374,38€+VFAC1423892*20050906*387,53€+VFAC1419812*20050906*47,48€+VFAC1389825*20050906*297,48€+VFAC1416424*20050906*596,49€+VFAC1396417*20050906*256,42€+VFAC1485932*20050906*512,1€ 20050906 3341,84 D
AQ5 REV000038673 STE REPROTRAD 109 rue de Thizy 69400 VILLEFRANCHE SUR
SAONE 0474090402 VFAC1329179*20050713*85,73€ 20050713 85,73 D
AQ5 REV000046449 M. RUEFF Alain 33 place de
Halle 63320 CHAMPEIX 0473962331 VFAC1439222*20051105*194,68€+VFAC1443379*20051105*299,16€+VFAC1422081*20051105*245,24€+VFAC1428241*20051105*174,77€+VFAC1387967*20051105*317,24€+VFAC1401184*20051105*275,41€+VFAC1414550*20051105*213,7€ 20051105 1720,2 D
AQ5 REV000048948 STE SNC A2C place du Marché Tabac Loto
Presse 69170 TARARE 0474632880 VFAC1438867*20051105*2178,15€+VFAC1438880*20051105*520,67€ 20051105 2698,82 D
AQ5 REV000051374 STE WEBSTER 28 cours Richard Vitton 69003 LYON
0478536171 VFAC1474253*20051213*289,67€ 20051213 289,67 D
ANC REV000052198 STE PRESSE MONTAIGNE 42
Grand'Place 59270 BAILLEUL 0328412482 VFAC1438824*20051105*1585,92€+VFAC1438835*20051105*1728,24€+VFAC1322193*20051105*541,14€+VFAC1383430*20051105*55,87€+VFAC1383014*20051105*665,67€+VFAC1382319*20051105*142,5€+VFAC1438891*20051105*92,15€+VFAC1438846*20051105*1289,96€ 20051105 6101,45 D
ANF REV000052269 STE AIRATEL C. Cial Le
Gast 35700 RENNES 0299631891 VFAC0939390*20040610*404,13€+VFAC0950002*20040610*119€+VFAC0954214*20040610*398€ 20040610 921,13 D
AQ5 REV000056035 STE CHARRAS
DEPANNAGE 230 rue d'Endoume 13007 MARSEILLE 0491315427 VFAC0952480*20040621*150€+VFAC0953843*20040621*150€+VFAC1037359*20040621*150€ 20040621 450 D
AM7 REV000056790 STE A.S INTERNATIONAL 5 rue de
Metz 75010 PARIS 0148244738 VFAC1482701*20051226*13394€+VRFA0001571*20051226*-472,95€ 20051226 12921,05 D
AM7 REV000061057 STE COCORICO 7 promenade de la Basilique 93200 SAINT
DENIS 0148213612 VFAC1417763*20051011*118,64€+VFAC1437441*20051011*1373,73€ 20051011 1492,37 D
ANF REV000061075 STE CULTURE ET COMMUNI 2 allée du Grand
Coquille 45800 SAINT JEAN DE
BRAYE 0248233358 VFAC1411028*20051004*1801,18€+VFAC1426360*20051004*3001,96€ 20051004 4803,14 D
AM7 REV000061258 MME DEIVASSAGAYAME MOUTTOUH 19 allée des trois
Musiciens 94350 VILLIERS SUR MARNE 0149415919 VFAC1375869 du 20050905 de
1918,38 EUR 20050905 1918,38 D

fichier txt:
04999REV000017957 06EURL HOTEL
3 rue E. Freyssimet
02430GAUCHY 02430
0323089797 20 0512 000000000,00B2 000000000,00
00 000000

201VFAC1482265*20051222*523,13€
NPZI Le Royeux
EU 000000000,00 000002313,13
04999REV000018031 06KIOSQUE LE MARAIS
avenue Diderot
10100ROMILLY SUR SEINE 10100
0325211978 20 0512 000000000,00B2 000000000,00
00 000000


201VFAC1488317*20051231*218,41€+VFAC1495754*20051231*717,09€+VFAC1500872*20051231*2NPParking
Centre Leclerc EU
000000000,00 000080919,19
04999REV000023141 06PRESSE DES 104
4 rue des 104
76700HARFLEUR 76700
0235470580 20 0510 000000000,00B2 000000000,00
00 000000


201VFAC1435839*20051029*311,57€+VFAC1440572*20051029*383,88€+VFAC1405850*20051029*4NP
EU
000000000,00 0000055360,6
04999REV000024805 06SARL MONDIAL SERVI
6 place des Oriels
28100DREUX 28100
0237625330 20 0509 000000000,00B2 000000000,00
00 000000

201VFAC1405920*20050930*1783,24€
NP
EU 000000000,00 000078324,24
04999REV000032335 04LIDIA SZCZEPANIAK
14/16 rue Léon Dehuz
08000CHARLEVILLE MEZIERES 08000
0324370485 20 0511 000000000,00B1 000000000,00
00 000000

201VFAC1439840*20051109*1703,97€
NP
EU 000000000,00 000070397,97
04999REV000034266 04DELMOTTE Danielle
39 rue des Fossets
63700MONTAIGUT EN COMBRAILLES 63700
0473854008 20 0507 000000000,00B1 000000000,00
00 000000


201VFAC1328198*20050711*665,69€+VFAC1300353*20050711*575,99€+RGA0058114*20050711*-7NP
EU
000000000,00 000002169,69
04999REV000035056 06SYED TELECOM
248 rue du Faubourg St Martin
75010PARIS 75010
0140349935 20 0512 000000000,00B2 000000000,00
00 000000


201VFAC1487129*20051227*20110,74€+VFAC1499345*20051227*94,99€+VFAC1482703*20051227*NP
EU
000000000,00 000062295,52
04999REV000038462 06PRESSE CHAMVOUX
5 rue de Frouard
54250CHAMPIGNEULLES 54250
0383381386 20 0509 000000000,00B2 000000000,00
00 000000


201VFAC1381535*20050906*140,94€+VFAC1381536*20050906*311,87€+VFAC1403106*20050906*3NP
EU
000000000,00 000034184,84
04999REV000038673 06REPROTRAD
109 rue de Thizy
69400VILLEFRANCHE SUR SAONE 69400
0474090402 20 0507 000000000,00B2 000000000,00
00 000000

201VFAC1329179*20050713*85,73€
NP
EU 000000000,00 000000573,73
04999REV000046449 11RUEFF Alain
33 place de Halle
63320CHAMPEIX 63320
0473962331 20 0511 000000000,00B2 000000000,00
00 000000


201VFAC1439222*20051105*194,68€+VFAC1443379*20051105*299,16€+VFAC1422081*20051105*2NP
EU
000000000,00 0000072020,2
04999REV000048948 06SNC A2C
place du Marché
69170TARARE 69170
0474632880 20 0511 000000000,00B2 000000000,00
00 000000

201VFAC1438867*20051105*2178,15€+VFAC1438880*20051105*520,67€
NPTabac Loto Presse
EU 000000000,00 000069882,82
04999REV000051374 06WEBSTER
28 cours Richard Vitton
69003LYON 69003
0478536171 20 0512 000000000,00B2 000000000,00
00 000000

201VFAC1474253*20051213*289,67€
NP
EU 000000000,00 000008967,67
04999REV000052198 06PRESSE MONTAIGNE
42 Grand'Place
59270BAILLEUL 59270
0328412482 20 0511 000000000,00B2 000000000,00
00 000000


201VFAC1438824*20051105*1585,92€+VFAC1438835*20051105*1728,24€+VFAC1322193*20051105NP
EU
000000000,00 000010145,45
04999REV000052269 06AIRATEL

35700RENNES 35700
0299631891 20 0406 000000000,00B2 000000000,00
00 000000


201VFAC0939390*20040610*404,13€+VFAC0950002*20040610*119€+VFAC0954214*20040610*398€NPC.
Cial Le Gast EU
000000000,00 000002113,13
04999REV000056035 06CHARRAS DEPANNAGE
230 rue d'Endoume
13007MARSEILLE 13007
0491315427 20 0406 000000000,00B2 000000000,00
00 000000


201VFAC0952480*20040621*150€+VFAC0953843*20040621*150€+VFAC1037359*20040621*150€
NP
EU 000000000,00 000000005000
04999REV000056790 06A.S INTERNATIONAL
5 rue de Metz
75010PARIS 75010
0148244738 20 0512 000000000,00B2 000000000,00
00 000000

201VFAC1482701*20051226*13394€+VRFA0001571*20051226*-472,95€
NP
EU 000000000,00 000029210,05
04999REV000061057 06COCORICO
7 promenade de la Basilique
93200SAINT DENIS 93200
0148213612 20 0510 000000000,00B2 000000000,00
00 000000

201VFAC1417763*20051011*118,64€+VFAC1437441*20051011*1373,73€
NP
EU 000000000,00 000049237,37
04999REV000061075 06CULTURE ET COMMUNI
2 allée du Grand Coquille
45800SAINT JEAN DE BRAYE 45800
0248233358 20 0510 000000000,00B2 000000000,00
00 000000

201VFAC1411028*20051004*1801,18€+VFAC1426360*20051004*3001,96€
NP
EU 000000000,00 000080314,14
04999REV000061258 04DEIVASSAGAYAME MOUTTOUH
19 allée des trois Musiciens
94350VILLIERS SUR MARNE 94350
0149415919 20 0509 000000000,00B1 000000000,00
00 000000

201VFAC1375869 du 20050905 de 1918,38 EUR
NP
EU 000000000,00 000091838,38

encore merci de votre aide...
--
ALF



oups....
trop rapide.
aprés verif, ça ne vient pas de là...
désolé
"Phil" a écrit dans le message de news:
443614c5$0$1150$
Bonjour..

C'est long... mais l'erreur ne viendrait elle pas de ces lignes :
principal = solde
montant_formaté = Format(principal, "#########,##0.00")

montant_formaté = montant_formaté * 100



le format "#########,##0.00" me paraît étrange et susceptible, une fois *
par cent de générer cette erreur ..

Bon courage

"ALF" a écrit dans le message de news:


Bonjour,
j'ai une macro dont une procedure (sub traitement impayes) me retourne un
fichier .xls et un fichier.txt.
le fichier .xls est ok mais le fichier.txt me renvoie un montant
erronné.il
senblerait que la macro supprime le 1er chiffre du montant ,prend la
chaine
de chiffre(limité à 5 chiffres max.) sans la virgule puis rajoute la
virgule
suivi de 2 chiffres.
ex si montant R3,13 on a dans le fichier.txt 2313,13
je n'arrive pas à trouver ce qui pose probleme dans la procedure..pouvez
vous m'eclairer...je vous laisse la macro

Sub choix()

menu_avip.Show

End Sub



Sub extraction_ACI()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPACI"
' Const DIR = "C:avipACI"

menu_avip.Hide

date_aci = InputBox("Les ACI de Quelle date doit-on extraire ?",
"ATTENTION
Saisir la date sous le format JJMMAA")
date_aci2 = Left$(date_aci, 2) & "/" & Mid(date_aci, 3, 2) & "/20" &
Right$(date_aci, 2)
' création fichier ACI _ date du jour

Workbooks.Open Filename:=dir & "matrice_ACI.xls"
Range("A2") = "ACI à saisir dans MISTRAL - " & date_aci2
nom_fich = "ACI_" & date_aci
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
etat = Range("V" & i)
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2
" & date_aci2




If etat = "ACI" And date_etat = date_aci2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
mont_ACI = Range("R" & i)
motif_ACI = Range("S" & i)
' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = date_defer
Range("E5") = creance
Range("F5") = mont_payés
Range("G5") = solde
Range("H5") = mont_ACI
Range("J5") = mont_ACI / 1.196
Range("I5") = mont_ACI - mont_ACI / 1.196
Range("K5") = motif_ACI
Range("N5") = etat
Range("O5") = date_etat
Range("O5").Select
Selection.NumberFormat = "dd/mm/yy;@"


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next

Range("A5:O" & nb_lignes + 4).Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

TTC = 0
TVA = 0
HT = 0

For k = 5 To nb_lignes + 4
TTC = TTC + Range("H" & k)
TVA = TVA + Range("I" & k)
HT = HT + Range("J" & k)
Next k

Range("H" & nb_lignes + 6) = TTC
Range("I" & nb_lignes + 6) = TVA
Range("J" & nb_lignes + 6) = HT


Range("H" & nb_lignes + 6 & ":J" & nb_lignes + 6).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With

compteur = 1
compteur_avip = 0
lignes_a_traiter = nb_lignes
nb_total = nb_lignes + 10
For j = 5 To nb_total
avip = Range("A" & j)
AVIP_suivant = Range("A" & j).Offset(1, 0)


If AVIP_suivant = avip Then
compteur = compteur + 1
lignes_a_traiter = lignes_a_traiter - 1
End If

If AVIP_suivant <> avip Then

compteur_avip = compteur_avip + 1
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("H" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("I" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("J" & j + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -compteur & "]C:R[-1]C)"
Range("H" & j + 1 & ":J" & j + 1).Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
compteur = 1
j = j + 1

End If

Next j

ActiveWorkbook.SaveAs Filename:=dir & nom_fich
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' ActiveWorkbook.Close
End Sub


Sub extraction_versement()
'
'
Dim date_etat As String, date_aci2 As String
Const dir = "S:CONTENTIEUX_AVIPRIOU"
'Const DIR = "C:avipRIOU"

menu_avip.Hide

date_RIOU = InputBox("Les Versements de Quelle date doit-on extraire ?",
"ATTENTION Saisir la date sous le format JJMMAA")
col = InputBox("Dans quelle colonne ont été saisis les paiements ? ")
date_RIOU2 = Left$(date_RIOU, 2) & "/" & Mid(date_RIOU, 3, 2) & "/20" &
Right$(date_RIOU, 2)
' création fichier Versements RIOU

Workbooks.Open Filename:=dir & "matrice_versements_RIOU.xls"
Range("A2") = "Versements RIOU du " & date_RIOU2
Range("K4") = "Vers. " & date_RIOU2
nom_fich = "Versements_RIOU_" & date_RIOU
ActiveWorkbook.SaveAs Filename:=dir & nom_fich


' traitement

Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select

Set debut = Range("B3")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)

' comptage nb lignes

nb_lignes = 0
For Each macellule In maplage
nb_lignes = nb_lignes + 1
Next


For i = 3 To nb_lignes + 3
Windows("suivi_dossiers_avip.xls").Activate
Sheets("AVIP").Select
date_etat = Range("W" & i)

' MsgBox "etat = " & etat & " date_etat = " & date_etat & " date_aci2
" & date_aci2




If date_etat = date_RIOU2 Then
' stockage données à copier
avip = Range("B" & i)
rev = Range("C" & i)
nom = Range("D" & i)
date_defer = Range("M" & i)
date_RIOU = Range("N" & i)
creance = Range("L" & i)
mont_payés = Range("O" & i)
solde = Range("Q" & i)
etat = Range("V" & i)
date_etat = Range("W" & i)
montant = Range(col & i)

' sélection fichier ACI pour collage
Windows(nom_fich & ".xls").Activate
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = avip
Range("B5") = rev
Range("C5") = nom
Range("D5") = creance
Range("E5") = date_defer
Range("F5") = date_RIOU
Range("G5") = mont_payés
Range("H5") = solde
Range("I5") = etat
Range("J5") = date_etat
Range("J5").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("K5") = montant


End If

Next i

Windows(nom_fich & ".xls").Activate
Set debut = Range("A5")
Set fin = debut.End(xlDown)
Set maplage = Range(debut, fin)









Avatar
JLuc
Tu devrais plutot faire un zip des deux fichiers et le deposer sur
www.cjoint.com, car sur le post, c'est assez illisible !

--
JLuc
Avatar
ALF
re,
ok les 2 fichiers sont joints sur http://cjoint.com/?ehmzaDGCxe
merci
--
ALF



Tu devrais plutot faire un zip des deux fichiers et le deposer sur
www.cjoint.com, car sur le post, c'est assez illisible !

--
JLuc





1 2