vicolecid | Bonjour,
j'ai un nouveau petit problème :
Code :
- Sub Bouton2_Cliquer()
- X = open_and_read_file(1)
- X = open_and_read_file(2)
- End Sub
- Function open_and_read_file(nrefsample)
- Dim TextLine
- Dim ResL, Resa, Resb, tmp As Integer
- Dim fileRef
- file = Application.GetOpenFilename() ' récupère le chemin du fichier
- If file = False Then: Exit Function
- Open file For Input As #1
- Do While (Not EOF(1)) '''fait jusqu'à ce que le fichier est finie et que la que la string
- Line Input #1, TextLine '''lit la ligne
- If InStr(TextLine, "<CxF:L>" ) <> 0 Or InStr(TextLine, "</CxF:L>" ) <> 0 Then
- TextLine = Replace(TextLine, vbTab & vbTab & vbTab & vbTab & vbTab & "<CxF:L>", "" ) 'on vire le préfixe
- TextLine = Replace(TextLine, "</CxF:L>", "" ) 'on vire le suffixe
- 'If InStr(TextLine, vbTab) Then: TextLine = Replace(MyString,vbTab, "" )
- ResL = ResL & Chr(13) & TextLine '''copie les données dans res séparé par des retour lignes
- ElseIf InStr(TextLine, "<CxF:A>" ) <> 0 Or InStr(TextLine, "</CxF:a>" ) <> 0 Then
- TextLine = Replace(TextLine, vbTab & vbTab & vbTab & vbTab & vbTab & "<CxF:A>", "" ) 'on vire le préfixe
- TextLine = Replace(TextLine, "</CxF:A>", "" ) 'on vire le suffixe
- Resa = Resa & Chr(13) & TextLine '''copie les données dans res séparé par des retour lignes
- ElseIf InStr(TextLine, "<CxF:B>" ) <> 0 Or InStr(TextLine, "</CxF:b>" ) <> 0 Then
- TextLine = Replace(TextLine, vbTab & vbTab & vbTab & vbTab & vbTab & "<CxF:B>", "" ) 'on vire le préfixe
- TextLine = Replace(TextLine, "</CxF:B>", "" ) 'on vire le suffixe
- Resb = Resb & Chr(13) & TextLine '''copie les données dans res séparé par des retour lignes
- End If
- Loop
- Close 1 ' Ferme le fichier.
- If ResL <> "" Then
- ResL = Mid(ResL, 2, Len(ResL) - 1) 'enleve le premier saut de ligne
- Laoub = 1
- tmp = write_worksheet(ResL, nrefsample, Laoub)
- Else
- MsgBox ("aucune info trouvée dans" & Laoub)
- End If
- If Resa <> "" Then
- Resa = Mid(Resa, 2, Len(Resa) - 1) 'enleve le premier saut de ligne
- Laoub = 2
- tmp = write_worksheet(Resa, nrefsample, Laoub)
- Else
- MsgBox ("aucune info trouvée dans" & Laoub)
- End If
- If Resb <> "" Then
- Resb = Mid(Resb, 2, Len(Resb) - 1) 'enleve le premier saut de ligne
- Laoub = 3
- tmp = write_worksheet(Resb, nrefsample, Laoub)
- Else
- MsgBox ("aucune info trouvée dans" & Laoub)
- End If
- End Function
- Function write_worksheet(resLaoub, nrefsample, Laoub)
- If nrefsample = 1 Then
- j = 0
- Else
- j = 3
- End If
- i = 2
- tmp = resLaoub
- Do While tmp <> "" ''' tant que tmp n'est pas vide
- Emplacement_Saut_Ligne = InStr(tmp, Chr(13)) 'emplacement du chr(13)
- If Emplacement_Saut_Ligne = 0 Then 'cas derniere ligne /ligne unique
- Sheets("Datas" ).Cells(i, Laoub + j).Value = tmp
- Exit Do
- Else
- Sheets("Datas" ).Cells(i, Laoub + j).Value = Left(tmp, Emplacement_Saut_Ligne - 1)
- tmp = Mid(tmp, Emplacement_Saut_Ligne + 1, Len(tmp))
- End If
- i = i + 1
- Loop
- End Function
|
(Je sais c'est moche...)
Mon fichier xml contient des tab en amont de mon préfixe des données que je veux prendre, j'ai bien essayé d'utiliser :
Code :
- If InStr(TextLine, vbTab) Then: TextLine = Replace(MyString,vbTab, "" )
|
(parce que voir ecrire 5 vtab & de suite... hein... )
mais ça efface tout... ça fail misérablement...
est-ce que je l'utilise bien?
EDIT : corrections de fautes Message édité par vicolecid le 24-05-2016 à 12:10:39
|