Decouper un fichier

perenthian

XLDnaute Nouveau
Je joins un fichier excel (modifié, raccourci), qui est à la base une base de donnée pro et dont l’extension n’est pas un .xslm mais un .hdb et qui peut s’ouvrir avec bloc note.

Ce fichier de base est constitué d’une première partie qui se termine au mot clef « [STRUCTURES_NUMBER] ». En face, il y a un nombre A. Ensuite on retrouve A parties comprises entre les mots clefs « [STRUCTURE_X] » et « [STRUCTURE_X+1] » sauf pour la dernière partie dont la borne finale est « le vide » de cellules.
Le fait est que la position de ces mots clefs varie en fonction des études, du nombre de ligne etc.
A partir de ce fichier, je veux créer A fichiers qui comprennent chacun la première partie suivi des parties « [STRUCTURE_X] » successives.
Le mieux est de passer par le bloc note et d’ouvrir le fichier de base en caché. Pour cela, j’ai écrit ce code mais celui ne fonctionne pas, et je ne vois pas la cause…

Code:
    Worksheets("General").Activate

    Dim xHDB(10000) As String
    Dim x_repdeb_HDB(20, 2)
    
    namepath = Cells(11, 2)
    database = Cells(14, 2)
    file = database & ".HDB"
    link = namepath & file
    link1 = namepath & database

    Open link For Input As 1

    Nbline = 0
    NSTR = 0
    r = 1

    Do While Not EOF(1)
        Line Input #1, xHDB(r)
            If InStr(xHDB(r), " STRUCTURES_NUMBER") <> 0 Then
                R_part_com = r
            End If
            If InStr(xHDB(r), " STRUCTURE_") <> 0 Then
                NSTR = NSTR + 1
                x_repdeb_HDB(NSTR, 1) = r
            End If

        r = r + 1

    Loop

    RMAX = r
    NSTR_max = NSTR

    Close #1

    For ISTR = 1 To NSTR_max
        Open link1 & ISTR & ".hdb " For Output As 1
            
        For i = 1 To R_part_com
            Print #1, xHDB(i)
        Next
        
        If ISTR <> NSTR_max Then
            Rend1 = x_repdeb_HDB(ISTR + 1, 1) - 1
        Else
            Rend1 = RMAX
        End If
        
        For i = x_repdeb_HDB(ISTR, 1) To Rend1
            Print #1, xHDB(i)
        Next
        
        Close #1
    
    Next

Merci d'avance
 

Pièces jointes

  • forum.xlsm
    221.3 KB · Affichages: 85
  • forum.xlsm
    221.3 KB · Affichages: 89
  • forum.xlsm
    221.3 KB · Affichages: 96

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa