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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Function VSplit(ByVal V)
V = Split(V, "(")
If UBound(V) > 0 Then VSplit = Split(V(1), ")")(0) _
Else V = Split(V(0), ": "): If UBound(V) > 0 Then VSplit = V(1)
End Function
Sub Demo()
Const S = "¤"
Dim C%, R&, SC, SL, SPQ, V, VA
V = Me.Path & "\export.csv"
If Dir(V) = "" Then Beep: Exit Sub
With CreateObject("ADODB.Stream")
.Charset = "utf-8"
.Open
.LoadFromFile V
SPQ = Split(Replace$(.ReadText, vbCrLf, S), vbLf)
.Close
End With
If UBound(SPQ) < 1 Then Beep: Exit Sub
SL = Split(SPQ(1), ";")
ReDim VA(1, 0)
With Worksheets(1)
.[C2:C12].Value = Application.Transpose(Application.Index(SL, , [{1,3,6,8,9,10,11,12,13,14,15}]))
SPQ = Split(SL(6), "Finalisation de votre projet :")
If UBound(SPQ) > 0 Then
SL(6) = SPQ(0)
For Each V In Split(SPQ(1), S)
If V Like " - Question 1[12] *" Then
VA(R, 0) = VSplit(V)
R = R + 1
If R > UBound(VA) Then Exit For
End If
Next
End If
.[C16:C17].Value = VA
ReDim VA(1 To 9, 1 To 12)
SPQ = Split(SL(6), "Description de ")
For R = 1 To Application.Min(UBound(SPQ), UBound(VA))
SL = Split(SPQ(R), S)
VA(R, 1) = R
VA(R, 2) = Split(SL(0), " :")(0)
C = 2
For Each V In SL
If V Like " - [Qq]uestion *" And C < UBound(VA, 2) Then C = C + 1: VA(R, C) = VSplit(V)
Next
Next
.[B20:M28].Value = VA
End With
End Sub |