LoadSaveFileLV




Option Explicit
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
XTstream.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











( loadsavefilelv.html )- by Paolo Puglisi - Modifica del 17/12/2023