Bonjour,
je dois créer un fichier txt (DOS/WINDOWS) depuis un fichier excel. C'est pour réaliser un fichier CFONB (transmission de données banque).
Dans mon exemple j'ai cette macro qui me crée le fichier.
Par contre mon problème est que je dois respecter des tailles et des positions de champs. C'est la que je bloque.
Ligne 1 reprend ces données : Enregistrement émetteur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Sub SaveAsTXT() Dim Range As Object, Line As Object, Cell As Object Dim StrTemp As String Dim Nomfichier As String Dim chemin As String Dim Separateur As String ActiveWorkbook.Save Sheets("DEPOT").Select Nomfichier = InputBox("Veuillez entrer le nom de fichier pour la SVG" & Chr(13) & Chr(10) & "Ajouter N° Bordreau_AAMMJJ ", "Nom fichier ?") chemin = ThisWorkbook.Path & "\FICHIERS\TXT_" Separateur = "" Set Range = ActiveSheet.UsedRange Open chemin & Nomfichier & ".txt" For Output As #1 For Each Line In Range.Rows StrTemp = " " For Each Cell In Line.Cells StrTemp = StrTemp & CStr(Cell.Text) & Separateur Next Print #1, StrTemp '= " " Next Close End Sub
N° CHAMP TAILLE POSITION DESCRIPTION 1 TYPE D'ENREGISTREMENT 9 (02) 1 à 2 Initialisé à 03 2 CODE OPERATION 9 (02) 3 à 4 Initialisé à 60 3 NUMEROTAGE 9 (08) 5 à 12 N° d'ordre de l'enr ( facultatif ) 4 FILLER 9 (06) 13 à 18 Initialisé à blanc 5 FILLER X (06) 19 à 24 Initialisé à blanc 6 DATE DE REMISE 9 (06) 25 à 30 Date de constitution du fichier 7 RAISON SOCIALE DU CEDANT X (24) 31 à 54 Votre raison sociale 8 DOMICILIATION BANCAIRE X (24) 55 à 78 Nom de votre banque 9 CODE ENTREE 9 (1) 79 Code du type de remise 10 CODE DAILLY X (01) 80 11 MONNAIE DE LA REMISE X (01) 81 E pour Euro 12 CODE BANQUE DU CEDANT 9 (05) 82 à 86 13 CODE GUICHET DU CEDANT 9 (05) 87 à 91 Code guichet du cédant 14 N° DE COMPTE DU CEDANT X (11) 92 à 102 N° de compte du cédant 15 FILLER X (16) 103 à 118 Initialisé à blanc 16 DATE DE VALEUR 9 (06) 119 à 124 Date de Valeur 17 FILLER X (10) 125 à 134 18 IDENTIFIANT ADHERENT X (10) 135 à 144 N° d’adh.t (sur 7) + N°contrat (sur 3) 19 FILLER X (16) 145 à 160 Initialisé à blanc
Ligne 2 à X lignes selon le nombre de clients : ENREGISTREMENT DESTINATAIRE
N° CHAMP TAILLE POSITION DESCRIPTION 1 TYPE D'ENREGISTREMENT 9 (02) 1 à 2 Initialisé à 06 2 CODE OPERATION 9 (02) 3 à 4 Initialisé à 60 3 NUMEROTAGE 9 (08) 5 à 12 N° d'ordre de l'enr.(facultatif) 4 FILLER X (06) 13 à 18 Initialisé à blanc 5 FILLER X (02) 19 à 20 Initialisé à blanc 6 REFERENCE TIRE X (10) 21 à 30 Votre n° de débiteur 7 RAISON SOCIALE DU TIRE X (24) 31 à 54 Raison sociale du tiré 8 DOMICILIATION BANCAIRE X (24) 55 à 78 Domiciliation bancaire du tiré 9 CODE ACCEPTATION 9 (01) 79 Code acceptation 10 FILLER X (02) 80 à 81 Initialisé à blanc 11 CODE BANQUE DU TIRE 9 (05) 82 à 86 Code banque du tiré 12 CODE GUICHET DU TIRE 9 (05) 87 à 91 Code guichet du tiré 13 N° DE COMPTE DU TIRE X (11) 92 à 102 N° de compte du tiré 14 MONTANT 9 (12) 103 à 114 Montant de l’effet 15 FILLER X (04) 115 à 118 Initialisé à blanc 16 DATE D'ECHEANCE 9 (06) 119 à 124 Date d'échéance de l’effet 17 DATE DE CREATION 9 (06) 125 à 130 Date de création de l’effet 18 FILLER X (20) 131 à 150 Initialisé à blanc 19 REFERENCE TIREUR X (10) 151 à 160
Ligne X (dernière ligne) selon nombre de ligne Clients : ENREGISTREMENT TOTAL
N° CHAMP TAILLE POSITION DESCRIPTION 1 TYPE D'ENREGISTREMENT 9 (02) 1 à 2 Initialisé à 08 2 CODE OPERATION 9 (02) 3 à 4 Initialisé à 60 3 NUMEROTAGE 9 (08) 5 à 12 N° d'ordre de l'enre. ( facultatif ) 4 FILLER X (06) 13 à 18 Initialisé à blanc 5 FILLER X (84) 19 à 102 Initialisé à blanc 6 MONTANT TOTAL 9 (12) 103 à 114 MT =Somme des enreg. de code 06 7 FILLER X (46) 115 à 160 Initialisé à blanc
Merci par avance pour les réponses.
Cdt
Partager