FREDWOOPER
XLDnaute Nouveau
Bonjour,
Après avoir lu les éléments de ce forum, j'essai de m'attaquer au formatage d'un fichier de rejet bancaire (enregistrement fixe de 240c)
Voici le format - enregistrement détail :
Code enregistrement : 34 2
N° séquentiel (=000001) 6
Code Opération OC (=88) 2
Date de création du précédent relevé JJMMAA 6
Code Chef de file Destinataire du rejet 5 (zone vide)
Code établissement destinataire 5
Code guichet destinataire 5
N° de compte du donneur d'ordre 11
Nom du client donneur d'ordre 24
N° National Emetter (NNE) 6
Code Chef de file émetteur du rejet 5 (zone vide)
Code établissement émetteur 5
Code guichet émetteur 5
N° de compte du destinataire 11
Nom du destinataire 24
Référence de la banque émettrice du rejet 6 (zone vide)
Libellé abréviatif de domiciliation 24 (zone vide)
Date de validation de l'ordre (JJMM) 4
CPOP 12
N° archivage adhésion chez le façonnier 6 (zone vide)
Nom abrégé du créancier 9 (zone vide)
Libellé 2 31 (zone vide)
Date de règlement de l'opération initiale JJMMAA 6
Réservée 4 (zone vide)
Code Centre Bancaire 2
Code motif du rejet 2
Montant compensé en centimes 12
Total de la zone : 240c
J'ai fait le code suivant en m'inspirant des exemples sur le site, mais cela ne fonctionne pas.
J'ai mon premier décalage au niveau de la zone "Nom du client donneur d'ordre" qui se termine à 72 au lieu de 66.
Je n'en trouve pas la raison, si quelqu'un peut m'aider svp...
J'avoue être plutôt niveau "débutant".
Voici mon code :
Private Sub CmdEnregistrer_Click()
Dim Compteur As Long
Dim Val_Ligne As String
Application.ScreenUpdating = False
On Error GoTo Fin
Open "c:\rejet.prn" For Output As #1
With ActiveSheet
For Compteur = 0 To .Range("A1").End(xlDown).Row - 1
Val_Ligne = Left(Format(.Range("A1").Offset(Compteur, 0).Value) & .Range("B1").Offset(Compteur, 0).Value _
& Format(.Range("C1").Offset(Compteur, 0).Value) & Format(.Range("D1").Offset(Compteur, 0).Value, "ddmmyy") _
& String(5, " ") & Format(.Range("E1").Offset(Compteur, 0).Value) & Format(.Range("F1").Offset(Compteur, 0).Value), 66) ' code banque
Val_Ligne = Val_Ligne & String(5, " ") '+ 5 blancs
Val_Ligne = Val_Ligne & Left(Format(.Range("G1").Offset(Compteur, 0).Value) & Format(.Range("H1").Offset(Compteur, 0).Value), 122) 'banque client
Val_Ligne = Val_Ligne & String(30, " ") '+ 30 blancs
Val_Ligne = Val_Ligne & Left(Format(.Range("I1").Offset(Compteur, 0).Value), 168) ' zone par défaut
Val_Ligne = Val_Ligne & String(46, " ") '+ 46 blancs
Val_Ligne = Val_Ligne & Format(.Range("J1").Offset(Compteur, 0).Value, "ddmmyy") 'date echéance
Val_Ligne = Val_Ligne & String(4, " ") '+ 4 blancs
Val_Ligne = Val_Ligne & Format(.Range("K1").Offset(Compteur, 0).Value) 'zones par défaut
Val_Ligne = Val_Ligne & Format(.Range("L1").Offset(Compteur, 0).Value, "0000000.00;0000000.00;")
Print #1,
End With
Fin:
Close #1
Si quelqu'un pouvait m'aider, cela m'enlèverait une grosse épine du pied.
Merci d'avance,
Cdt,
Wooper.
Après avoir lu les éléments de ce forum, j'essai de m'attaquer au formatage d'un fichier de rejet bancaire (enregistrement fixe de 240c)
Voici le format - enregistrement détail :
Code enregistrement : 34 2
N° séquentiel (=000001) 6
Code Opération OC (=88) 2
Date de création du précédent relevé JJMMAA 6
Code Chef de file Destinataire du rejet 5 (zone vide)
Code établissement destinataire 5
Code guichet destinataire 5
N° de compte du donneur d'ordre 11
Nom du client donneur d'ordre 24
N° National Emetter (NNE) 6
Code Chef de file émetteur du rejet 5 (zone vide)
Code établissement émetteur 5
Code guichet émetteur 5
N° de compte du destinataire 11
Nom du destinataire 24
Référence de la banque émettrice du rejet 6 (zone vide)
Libellé abréviatif de domiciliation 24 (zone vide)
Date de validation de l'ordre (JJMM) 4
CPOP 12
N° archivage adhésion chez le façonnier 6 (zone vide)
Nom abrégé du créancier 9 (zone vide)
Libellé 2 31 (zone vide)
Date de règlement de l'opération initiale JJMMAA 6
Réservée 4 (zone vide)
Code Centre Bancaire 2
Code motif du rejet 2
Montant compensé en centimes 12
Total de la zone : 240c
J'ai fait le code suivant en m'inspirant des exemples sur le site, mais cela ne fonctionne pas.
J'ai mon premier décalage au niveau de la zone "Nom du client donneur d'ordre" qui se termine à 72 au lieu de 66.
Je n'en trouve pas la raison, si quelqu'un peut m'aider svp...
J'avoue être plutôt niveau "débutant".
Voici mon code :
Private Sub CmdEnregistrer_Click()
Dim Compteur As Long
Dim Val_Ligne As String
Application.ScreenUpdating = False
On Error GoTo Fin
Open "c:\rejet.prn" For Output As #1
With ActiveSheet
For Compteur = 0 To .Range("A1").End(xlDown).Row - 1
Val_Ligne = Left(Format(.Range("A1").Offset(Compteur, 0).Value) & .Range("B1").Offset(Compteur, 0).Value _
& Format(.Range("C1").Offset(Compteur, 0).Value) & Format(.Range("D1").Offset(Compteur, 0).Value, "ddmmyy") _
& String(5, " ") & Format(.Range("E1").Offset(Compteur, 0).Value) & Format(.Range("F1").Offset(Compteur, 0).Value), 66) ' code banque
Val_Ligne = Val_Ligne & String(5, " ") '+ 5 blancs
Val_Ligne = Val_Ligne & Left(Format(.Range("G1").Offset(Compteur, 0).Value) & Format(.Range("H1").Offset(Compteur, 0).Value), 122) 'banque client
Val_Ligne = Val_Ligne & String(30, " ") '+ 30 blancs
Val_Ligne = Val_Ligne & Left(Format(.Range("I1").Offset(Compteur, 0).Value), 168) ' zone par défaut
Val_Ligne = Val_Ligne & String(46, " ") '+ 46 blancs
Val_Ligne = Val_Ligne & Format(.Range("J1").Offset(Compteur, 0).Value, "ddmmyy") 'date echéance
Val_Ligne = Val_Ligne & String(4, " ") '+ 4 blancs
Val_Ligne = Val_Ligne & Format(.Range("K1").Offset(Compteur, 0).Value) 'zones par défaut
Val_Ligne = Val_Ligne & Format(.Range("L1").Offset(Compteur, 0).Value, "0000000.00;0000000.00;")
Print #1,
End With
Fin:
Close #1
Si quelqu'un pouvait m'aider, cela m'enlèverait une grosse épine du pied.
Merci d'avance,
Cdt,
Wooper.