XL 2016 Formatage fichier TXT sans séparateur et longueur ligne variable

Flx1er

XLDnaute Occasionnel
Bonjour

Je sollicite de l’aide pour m’aider à solutionner des problèmes pour les quels mes compétences en VBA sont extrêmement limitées.

L’objectif de cette demande est de structurer un fichier txt ne disposant pas de séparateurs et que chaque ligne constituant ce fichier est de longueur variable. Ce nouveau fichier servira à alimenter un univers BO (là, je gère).

J’ai essayé d’automatiser un traitement manuel : importation du fichier txt ; gestion des chaînes de caractères à l’aide de formules ; … ; mais je perds beaucoup trop de temps, lenteur de calcul, lourdeur du fichier. Bref, le constat : je n’ai pas les compétences en VBA. Je suis bloqué sur la première partie à savoir le formatage.

Le fichier texte encapsule un numéro de version. A chaque modification de la structure (ajout de nouvelle information, par exemple), la version évolue.

Je sollicite les pro en vba me permettant d’effectuer ce formatage automatiquement, et de générer 4 fichiers txt avec comme séparateur une tabulation :
  • 1 fichier pour la partie fixe : PartieFixe.txt
  • 1 fichier pour ma partie variable PartieVar_D.txt
  • 1 fichier pour ma partie variable PartieVar_Cs.txt
  • 1 fichier pour ma partie variable PartieVar_Cc.txt
Ma demande s’accompagne
  • d’un fichier excel : ce fichier dispose de plusieurs onglets,
    • les 6 premiers montre le principe des traitements manuels des chaînes de caractères
    • et le dernier correspond au versionning
  • de 7 fichiers d’exemple txt
    • Ces fichiers résultent d’une extraction périodique d’une solution tierce.
      • Normalement chaque fichier est constitué de plusieurs millier de lignes.
      • Une particularité au niveau du fichier XXYY800ZZ.2019.12.Export-présence de 2 version.txt : il y a la présence de 2 versions
    • Chaque ligne de ces fichiers a une version. Sur l’onglet Versionning du fichier excel se trouve le détail de chaque version.
Description des onglet du fichier excel
  • Struct File TXT :
    • Descriptif du formatage des données. 2 tableaux sont présents, ils sont identiques : le 1er est ligne et le 2nd est en colonne.
    • Le 2nd tableau me sert pour les formules présentent sur les autres onglets
    • La structure du fichier montre la présence
      • d'une Partie Fixe,
      • et de 3 parties variables :
        • Partie Chaîne D : taille de la chaine : 6
        • Partie Cs : taille de la chaine :32
        • Partie Cc : taille de la chaine : 19
          Ces 3 dernières parties évoluent en fonction du contenu des champs Nb D ; Nb Cs ; Nb Cc en position 157,159 ,162 de la partie fixe.
          Par exemple : si Nb D a comme valeur 5, alors la taille de la chaine D = 5*6 soit 30 caractères
  • Import File TXT
    Importation d’un fichier rdx. Ce fichier se nomme XXYY800ZZ.AAAA.MM.Export.txt ou :
    • XXYY800ZZ est le site
    • AAAA correspondant à l’année d’exportation
    • MM correspondant au mois
  • PartieFixe
    • est le traitement des chaines de caractères de l’onglet Import File TXT. La fonction majoritairement utilisée est STXT
    • Les 3 premières colonnes servent à créer un ID et avoir l’année et mois de la période :
      • L’ID est la concaténation de l’année, du mois (présent au niveau du nom du fichier TXT) suivi d’un indicateur séquentiel
      • Période est l’année présent au niveau du nom du fichier TXT
      • Mois est le mois présent au niveau du nom du fichier TXT
    • Les entêtes des colonnes sont
      • Les 3ères colonnes sont ID; Période; Mois; puis,
      • les intitulés de la partie fixe de l’onglet Struct File TXT
      • La taille des 3 derniers champs c'est à dire Chaîne D; Chaine Cs et Chaine Cc sont issus de la multiplication entre le nombre d’occurrence présent au niveau des champs Nb D ; Nb Cs ; Nb Cc, et de la longueur de D, Cs, Cc (zones nommées Lg_D, Lg_Cs et Lg_Cc)
  • PartieVar_D
    La fonction de cet onglet est de traiter Chaine D en créant autant de lignes que contient la valeur du champs Nb D , ainsi :
    ¤ la 1ère ligne contiendra les 6 premiers caractères de Chaine D,
    ¤ la 2ième ligne contiendra du 7 au 12 caractères de Chaine D,
    ¤ etc.
    • Les formules présentent dans les colonnes Lig R ; Déb D ; N° Séq D et Nbre D servent à effectuer ce traitement
    • Les colonnes ID D; ID R; Période et Mois sont
      • Pour ID D la concaténation de l’année et mois (présent au niveau du nom du fichier TXT) suivi d’un indicateur séquentiel
      • Pour ID R est égal au contenu de la colonne ID R de la partie fixe
      • Période et Mois information présente au niveau du nom du fichier TXT
  • PartieVar_Cs et PartieVar_Cc : même principe que pour la partie PartieVar_D
  • Versionning
    Cet onglet regroupe les différentes versions. Ainsi quel que soit la ligne du fichier à traiter, le programme se référera à la version afin de sélectionner et appliquer les bons paramètres pour chaque ligne du fichier.
 

Pièces jointes

  • Format File Export.xlsx
    116.1 KB · Affichages: 12
  • XXYY800ZZ.2013.02.Export.txt
    3.7 KB · Affichages: 5
  • XXYY800ZZ.2013.04.Export.txt
    5.5 KB · Affichages: 3
  • XXYY800ZZ.2014.06.Export.txt
    4 KB · Affichages: 2
  • XXYY800ZZ.2016.10.Export.txt
    4.9 KB · Affichages: 3
  • XXYY800ZZ.2017.12.Export.txt
    4.8 KB · Affichages: 2
  • XXYY800ZZ.2018.12.Export.txt
    5.1 KB · Affichages: 2
  • XXYY800ZZ.2019.12.Export-présence de 2 version.txt
    7.4 KB · Affichages: 4

Discussions similaires

Réponses
8
Affichages
356
Réponses
46
Affichages
801

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 864
dernier inscrit
abderrashmaen