IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA créer un fichier TXT avec position des données


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Par défaut VBA créer un fichier TXT avec position des données
    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.

    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
    Ligne 1 reprend ces données : Enregistrement émetteur

    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

    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

    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
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Sélectionner un répertoire et créer un fichier TXT avec le contenu d'une colonne
    Par Coco l'asticot dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/12/2016, 16h44
  2. Cmd ECHO créer un fichier txt avec l'heure comme nom
    Par Seth_Nemesia111 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 10/03/2015, 14h42
  3. soft editeur de fichier plat avec position des caractères
    Par tibofo dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 03/08/2010, 10h29
  4. Réponses: 8
    Dernier message: 01/06/2010, 14h33
  5. créer un fichier txt avec c++
    Par fatjoe dans le forum C++
    Réponses: 1
    Dernier message: 15/01/2008, 22h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo