asmahmood
asked on
Copy list view contents
I just want to copy all contents with the settings(col,rows) in the clipboard so that i can paste it in excel for printout or for saving that in a file.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
interesting...
Hi asmahmood,
Note:
You can do your task without the clipboard by using
OLE Automation
You must link the "Microsoft Excel 8.0 Object Library" to your project file (IDE: Menu Project\Links)!
And then put this in a VB module and call the main sub:
-------------------------- ---------- ---------- ---------- ---
Private m_objExcel As Excel.Application
' Comments : Starts an instance of Excel
' Parameters: fVisible - True to make Excel visible
' Returns : Nothing
Public Sub StartExcel(fVisible As Boolean)
On Error GoTo PROC_ERR
Set m_objExcel = New Excel.Application
m_objExcel.Visible = fVisible
PROC_EXIT:
Exit Sub
PROC_ERR:
MsgBox "Error: " & Err.Number & ". " & Err.Description, , _
"StartExcel"
Resume PROC_EXIT
End Sub
Public Sub FillExcel()
dim I as integer
dim J as integer
dim strContents as string
strContents=""
for i= 1 to MyListView.listItems.count
m_objWorkbook.ActiveWorkbo ok.ActiveS heet.Cells (i,0).Valu e = MyListView.listItems(i)
for j=1 to MyListView.columnheaders.c ount-1
m_objWorkbook.ActiveWorkbo ok.ActiveS heet.Cells (i,j).Valu e = MyListView.listItems(i).su bitems(j)
next j
next i
End Sub
Public Sub Main()
StartExcel(True)
FillExcel
End Sub
-------------------------- ---------- ---------- ---------- ---
Greeting
WoK
Note:
You can do your task without the clipboard by using
OLE Automation
You must link the "Microsoft Excel 8.0 Object Library" to your project file (IDE: Menu Project\Links)!
And then put this in a VB module and call the main sub:
--------------------------
Private m_objExcel As Excel.Application
' Comments : Starts an instance of Excel
' Parameters: fVisible - True to make Excel visible
' Returns : Nothing
Public Sub StartExcel(fVisible As Boolean)
On Error GoTo PROC_ERR
Set m_objExcel = New Excel.Application
m_objExcel.Visible = fVisible
PROC_EXIT:
Exit Sub
PROC_ERR:
MsgBox "Error: " & Err.Number & ". " & Err.Description, , _
"StartExcel"
Resume PROC_EXIT
End Sub
Public Sub FillExcel()
dim I as integer
dim J as integer
dim strContents as string
strContents=""
for i= 1 to MyListView.listItems.count
m_objWorkbook.ActiveWorkbo
for j=1 to MyListView.columnheaders.c
m_objWorkbook.ActiveWorkbo
next j
next i
End Sub
Public Sub Main()
StartExcel(True)
FillExcel
End Sub
--------------------------
Greeting
WoK
Sorry the lines:
for i= 1 to MyListView.listItems.count
m_objWorkbook.ActiveWorkbo ok.ActiveS heet.Cells (i,0).Valu e = MyListView.listItems(i)
for j=1 to MyListView.columnheaders.c ount-1
m_objWorkbook.ActiveWorkbo ok.ActiveS heet.Cells (i,j).Valu e = MyListView.listItems(i).su bitems(j)
Must be:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, 0).Value = MyListView.listItems(i)
for j=1 to MyListView.columnheaders.c ount-1
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, j).Value = MyListView.listItems(i).su bitems(j)
Bye
WoK
for i= 1 to MyListView.listItems.count
m_objWorkbook.ActiveWorkbo
for j=1 to MyListView.columnheaders.c
m_objWorkbook.ActiveWorkbo
Must be:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook.
for j=1 to MyListView.columnheaders.c
m_objExcel.ActiveWorkbook.
Bye
WoK
(I have checked the code)
The lines:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, 0).Value = MyListView.listItems(i)
for j=1 to MyListView.columnheaders.c ount-1
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, j).Value = MyListView.listItems(i).su bitems(j)
must be:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, 1).Value = MyListView.listItems(i)
for j=1 to MyListView.columnheaders.c ount-1
m_objExcel.ActiveWorkbook. ActiveShee t.Cells(i, j + 1).Value = MyListView.listItems(i).su bitems(j)
Bye
WoK
The lines:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook.
for j=1 to MyListView.columnheaders.c
m_objExcel.ActiveWorkbook.
must be:
for i= 1 to MyListView.listItems.count
m_objExcel.ActiveWorkbook.
for j=1 to MyListView.columnheaders.c
m_objExcel.ActiveWorkbook.
Bye
WoK
ASKER
Thank u all for answering me but there was some problem with expert exchange server yesterday and i want the answer as early as possible becuse it was not too big problem so create another routine which was same like CASASSUS's comments so i did it but thanks WolfgangKoening i will definately try ur way if it works! but now i am doing my work with CASASSUS's comment so thnks again
ASKER
it works thanks
(Because of limitations in this community its only a comment.)
--------------------------
This example uses the SetText method to copy text from a text box to the Clipboard. To try this example, paste the code into the Declarations section of a form with a text box named Text1, and then press F5 and click the form.
Private Sub Form_Click()
Const CF_TEXT = 1 ' Define bitmap format.
Dim I, Msg, Temp ' Declare variables.
On Error Resume Next ' Set up error handling.
Msg = "Type anything you like into the text box below."
Text1.Text = InputBox(Msg) ' Get text from user.
Msg = "Choose OK to copy the contents of the text box "
Msg = Msg & "to the Clipboard."
MsgBox Msg ' Display message.
Clipboard.Clear ' Clear Clipboard.
Clipboard.SetText Text1.Text ' Put text on Clipboard.
If Clipboard.GetFormat(CF_TEX
Text1.Text = "" ' Clear the text box.
Msg = "The text is now on the Clipboard. Choose OK "
Msg = Msg & "to copy the text from the Clipboard back "
Msg = Msg & "to the text box."
MsgBox Msg ' Display message.
Temp = Clipboard.GetText(CF_TEXT)
For I = Len(Temp) To 1 Step -1 ' Reverse the text.
Text1.Text = Text1.Text & Mid(Temp, I, 1)
Next I
Else
Msg = "There is no text on the Clipboard."
MsgBox Msg ' Display error message.
End If
End Sub
;o)
WoK