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…
Merci d'avance
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