( Sources converts in 6 colours with my VB TO HTML program)
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Dim FSO As FileSystemObject
Dim TXTstream As TextStream
'==================================================================================
' Save lines of a ListView in a Text File
' This File can be open with Excel (see Sub OpenListViewFileInExcel)
'==================================================================================
Public Sub SaveListViewInFile(ByVal LV As ListView, ByRef FileName As String)
Dim i As Long
Dim j As Long
Dim tempo As String
On Error GoTo gestion_erreur
Set TXTstream = FSO.CreateTextFile(FileName)
For i = 1 To LV.ListItems.Count
tempo = LV.ListItems.Item(i).Text
For j = 1 To LV.ColumnHeaders.Count - 1
tempo = tempo & Chr(9) & LV.ListItems.Item(i).SubItems(j)
Next j
TXTstream.WriteLine tempo
Next i
TXTstream.Close
Exit Sub
gestion_erreur:
MsgBox Err.Description, vbCritical, "ERREUR n°" & CStr(Err.Number)
End Sub
'==================================================================================
' Load Lines from a file to a ListView
'==================================================================================
Public Sub LoadListViewFromFile(ByVal LV As Object, ByRef FileName As String)
Dim i As Long
Dim j As Long
Dim NbLigne As Long
Dim NbColonne As Long
Dim LigneTexte
Dim ColonneTexte As String
On Error GoTo gestion_erreur
LV.ListItems.Clear
Set TXTstream = FSO.OpenTextFile(FileName)
i = 1
j = 1
Do
LigneTexte = TXTstream.ReadLine
ColonneTexte = Mid(LigneTexte, 1, InStr(1, LigneTexte, Chr(9), vbTextCompare) - 1)
LigneTexte = Replace(LigneTexte, ColonneTexte + Chr(9), "", , 1)
LV.ListItems.Add , , ColonneTexte
While InStr(1, LigneTexte, Chr(9), vbTextCompare) <> 0
If LV.ColumnHeaders.Count <= j Then LV.ColumnHeaders.Add , , j
ColonneTexte = Mid(LigneTexte, 1, InStr(1, LigneTexte, Chr(9), vbTextCompare) - 1)
LV.ListItems.Item(i).SubItems(j) = ColonneTexte
LigneTexte = Replace(LigneTexte, ColonneTexte + Chr(9), "", , 1)
j = j + 1
Wend
If LV.ColumnHeaders.Count <= j Then LV.ColumnHeaders.Add , , j
LV.ListItems.Item(i).SubItems(j) = LigneTexte
j = 1
i = i + 1
Loop Until TXTstream.AtEndOfStream
TXTstream.Close
Exit Sub
gestion_erreur:
MsgBox Err.Description, vbCritical, "ERREUR n°" & CStr(Err.Number)
End Sub
'==================================================================================
' Open a ListView File with Excel
'==================================================================================
Public Sub OpenListViewFileInExcel(ByVal FileName As String)
On Error Resume Next
Call ShellExecute(0, "open", "excel", """" & FileName & """", "", 10)
End Sub
'==================================================================================
'
'==================================================================================
Private Sub Class_Initialize()
Set FSO = New FileSystemObject
End Sub
'==================================================================================
'
'==================================================================================
Private Sub Class_Terminate()
Set FSO = Nothing
Set TXTstream = Nothing
End Sub