P
Powerguy
Hi all,
I've spent countless hours trying to get this silly EXCEL process to
close once I have used it. If anyone can help it would really REALLy
be appreciated! Below is my code-
Dim t As Integer
Dim testCount As Boolean
testCount = False
For t = 0 To UserListView.Items.Count - 1
If UserListView.Items(t).Checked = True Then
testCount = True
End If
Next
If testCount = True Then
Dim j As Integer
Dim k As Integer
Dim strSelectedStartDate As String
Dim strSelectedEndDate As String
strSelectedStartDate = CStr(Format(DateTimePickerStart.Value,
"dd-MM-yyyy"))
strSelectedEndDate = CStr(Format(DateTimePickerEnd.Value,
"dd-MM-yyyy"))
Dim fiPath As IO.FileInfo
Dim strPath As String
fiPath = New IO.FileInfo
System.Reflection.Assembly.GetExecutingAssembly.Location)
strPath = fiPath.Directory.FullName
Dim PathStr As String
PathStr = "" & strPath & "\ClientTemplate.xls"
For j = 0 To UserListView.Items.Count - 1
If UserListView.Items(j).Checked = True Then
ConnectToDatabase()
DoSummary(UserListView.Items(j).Text,
DateTimePickerStart.Value, _
DateTimePickerEnd.Value)
Dim EXL As Excel.Application = New
Excel.Application
Dim oWorkbooks As Excel.Workbooks = EXL.Workbooks
Dim oWorkbook As Excel.Workbook =
oWorkbooks.Open(PathStr)
Dim SummaryWorkSheet As Excel.Worksheet
Dim DetailWorksheet As Excel.Worksheet
EXL.Visible = False
SummaryWorkSheet = EXL.Workbooks(1).Worksheets(1)
SummaryWorkSheet.Cells(1, 2) =
UserListView.Items(j).Text
SummaryWorkSheet.Cells(2, 2) =
strSelectedStartDate
SummaryWorkSheet.Cells(3, 2) = strSelectedEndDate
If SummaryTable.Rows.Count > 0 Then
Dim i As Integer
For i = 0 To SummaryTable.Rows.Count - 1
Dim EXLAppName As String
SummaryWorkSheet.Activate()
SummaryWorkSheet.Cells(6 + i, 1) =
SummaryTable.Rows(i).Item(0)
SummaryWorkSheet.Cells(6 + i, 2) =
SummaryTable.Rows(i).Item(1)
SummaryWorkSheet.Cells(6 + i, 3) =
SummaryTable.Rows(i).Item(2)
DetailWorksheet =
EXL.Workbooks(1).Worksheets.Add(after:=EXL.Workbooks(1).Worksheets(1 +
i))
DetailWorksheet =
EXL.Workbooks(1).Worksheets(i + 2)
DetailWorksheet.Name =
SummaryTable.Rows(i).Item(0)
DetailWorksheet.Cells(6, 1) =
SummaryTable.Rows(i).Item(0)
DetailWorksheet.Cells(6, 2) =
SummaryTable.Rows(i).Item(1)
DetailWorksheet.Cells(6, 3) =
SummaryTable.Rows(i).Item(2)
DetailWorksheet.Cells(1, 2) =
UserListView.Items(j).Text
DetailWorksheet.Cells(2, 2) =
strSelectedStartDate
DetailWorksheet.Cells(3, 2) =
strSelectedEndDate
DetailWorksheet.Columns("A").ColumnWidth =
16.71
DetailWorksheet.Columns("B").ColumnWidth =
25
DetailWorksheet.Columns("C").ColumnWidth =
50
DetailWorksheet.Columns("D").ColumnWidth =
18
DetailWorksheet.Columns("A:A").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("B:B").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("C:C").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("D
").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Cells(1, 1).select()
DetailWorksheet.Range("A1:A3").Font.Bold =
True
DetailWorksheet.Range("A5:C5").Font.Bold =
True
DetailWorksheet.Range("A8
8").Font.Bold =
True
DetailWorksheet.Cells(1, 1) = "UserName:"
DetailWorksheet.Cells(2, 1) = "Start
Date:"
DetailWorksheet.Cells(3, 1) = "End Date:"
DetailWorksheet.Cells(5, 1) = "Application
Name"
DetailWorksheet.Cells(5, 2) = "Total
Hours"
DetailWorksheet.Cells(5, 3) = "Condition"
DetailWorksheet.Cells(8, 1) = "Log
Details"
DetailWorksheet.Cells(8, 2) = "Start Time"
DetailWorksheet.Cells(8, 3) = "End Time"
DetailWorksheet.Cells(8, 4) = "Chargeable
Hours"
EXLAppName = SummaryGrid.Item(i, 0)
DoDetails(UserListView.Items(j).Text,
EXLAppName, DateTimePickerStart.Value, _
DateTimePickerEnd.Value)
For k = 0 To DetailLogTable.Rows.Count - 1
DetailWorksheet.Cells(k + 9, 1) =
DetailLogTable.Rows(k).Item(0)
DetailWorksheet.Cells(k + 9, 2) =
DetailLogTable.Rows(k).Item(1)
DetailWorksheet.Cells(k + 9, 3) =
DetailLogTable.Rows(k).Item(2)
DetailWorksheet.Cells(k + 9, 4) =
DetailLogTable.Rows(k).Item(3)
Next
Next
SummaryWorkSheet.Activate()
End If
oWorkbook.SaveAs("" & strPath & "\" &
UserListView.Items(j).Text & " from " & strSelectedStartDate & " to "
& strSelectedEndDate & ".xls")
oWorkbooks.Close()
SummaryWorkSheet = Nothing
DetailWorksheet = Nothing
oWorkbooks = Nothing
oWorkbook = Nothing
EXL.Quit()
EXL = Nothing
DisconDatabase()
GC.Collect()
End If
Next
I know its alot of code to look at but I'm not quite sure what to
leave out incase that is what is creating the problem!
I'm really running out of ideas..
Thanks
PowaGuy
I've spent countless hours trying to get this silly EXCEL process to
close once I have used it. If anyone can help it would really REALLy
be appreciated! Below is my code-
Dim t As Integer
Dim testCount As Boolean
testCount = False
For t = 0 To UserListView.Items.Count - 1
If UserListView.Items(t).Checked = True Then
testCount = True
End If
Next
If testCount = True Then
Dim j As Integer
Dim k As Integer
Dim strSelectedStartDate As String
Dim strSelectedEndDate As String
strSelectedStartDate = CStr(Format(DateTimePickerStart.Value,
"dd-MM-yyyy"))
strSelectedEndDate = CStr(Format(DateTimePickerEnd.Value,
"dd-MM-yyyy"))
Dim fiPath As IO.FileInfo
Dim strPath As String
fiPath = New IO.FileInfo
System.Reflection.Assembly.GetExecutingAssembly.Location)
strPath = fiPath.Directory.FullName
Dim PathStr As String
PathStr = "" & strPath & "\ClientTemplate.xls"
For j = 0 To UserListView.Items.Count - 1
If UserListView.Items(j).Checked = True Then
ConnectToDatabase()
DoSummary(UserListView.Items(j).Text,
DateTimePickerStart.Value, _
DateTimePickerEnd.Value)
Dim EXL As Excel.Application = New
Excel.Application
Dim oWorkbooks As Excel.Workbooks = EXL.Workbooks
Dim oWorkbook As Excel.Workbook =
oWorkbooks.Open(PathStr)
Dim SummaryWorkSheet As Excel.Worksheet
Dim DetailWorksheet As Excel.Worksheet
EXL.Visible = False
SummaryWorkSheet = EXL.Workbooks(1).Worksheets(1)
SummaryWorkSheet.Cells(1, 2) =
UserListView.Items(j).Text
SummaryWorkSheet.Cells(2, 2) =
strSelectedStartDate
SummaryWorkSheet.Cells(3, 2) = strSelectedEndDate
If SummaryTable.Rows.Count > 0 Then
Dim i As Integer
For i = 0 To SummaryTable.Rows.Count - 1
Dim EXLAppName As String
SummaryWorkSheet.Activate()
SummaryWorkSheet.Cells(6 + i, 1) =
SummaryTable.Rows(i).Item(0)
SummaryWorkSheet.Cells(6 + i, 2) =
SummaryTable.Rows(i).Item(1)
SummaryWorkSheet.Cells(6 + i, 3) =
SummaryTable.Rows(i).Item(2)
DetailWorksheet =
EXL.Workbooks(1).Worksheets.Add(after:=EXL.Workbooks(1).Worksheets(1 +
i))
DetailWorksheet =
EXL.Workbooks(1).Worksheets(i + 2)
DetailWorksheet.Name =
SummaryTable.Rows(i).Item(0)
DetailWorksheet.Cells(6, 1) =
SummaryTable.Rows(i).Item(0)
DetailWorksheet.Cells(6, 2) =
SummaryTable.Rows(i).Item(1)
DetailWorksheet.Cells(6, 3) =
SummaryTable.Rows(i).Item(2)
DetailWorksheet.Cells(1, 2) =
UserListView.Items(j).Text
DetailWorksheet.Cells(2, 2) =
strSelectedStartDate
DetailWorksheet.Cells(3, 2) =
strSelectedEndDate
DetailWorksheet.Columns("A").ColumnWidth =
16.71
DetailWorksheet.Columns("B").ColumnWidth =
25
DetailWorksheet.Columns("C").ColumnWidth =
50
DetailWorksheet.Columns("D").ColumnWidth =
18
DetailWorksheet.Columns("A:A").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("B:B").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("C:C").select()
EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Columns("D
").select()EXL.Selection.HorizontalAlignment =
Excel.XlHAlign.xlHAlignLeft
DetailWorksheet.Cells(1, 1).select()
DetailWorksheet.Range("A1:A3").Font.Bold =
True
DetailWorksheet.Range("A5:C5").Font.Bold =
True
DetailWorksheet.Range("A8
8").Font.Bold =True
DetailWorksheet.Cells(1, 1) = "UserName:"
DetailWorksheet.Cells(2, 1) = "Start
Date:"
DetailWorksheet.Cells(3, 1) = "End Date:"
DetailWorksheet.Cells(5, 1) = "Application
Name"
DetailWorksheet.Cells(5, 2) = "Total
Hours"
DetailWorksheet.Cells(5, 3) = "Condition"
DetailWorksheet.Cells(8, 1) = "Log
Details"
DetailWorksheet.Cells(8, 2) = "Start Time"
DetailWorksheet.Cells(8, 3) = "End Time"
DetailWorksheet.Cells(8, 4) = "Chargeable
Hours"
EXLAppName = SummaryGrid.Item(i, 0)
DoDetails(UserListView.Items(j).Text,
EXLAppName, DateTimePickerStart.Value, _
DateTimePickerEnd.Value)
For k = 0 To DetailLogTable.Rows.Count - 1
DetailWorksheet.Cells(k + 9, 1) =
DetailLogTable.Rows(k).Item(0)
DetailWorksheet.Cells(k + 9, 2) =
DetailLogTable.Rows(k).Item(1)
DetailWorksheet.Cells(k + 9, 3) =
DetailLogTable.Rows(k).Item(2)
DetailWorksheet.Cells(k + 9, 4) =
DetailLogTable.Rows(k).Item(3)
Next
Next
SummaryWorkSheet.Activate()
End If
oWorkbook.SaveAs("" & strPath & "\" &
UserListView.Items(j).Text & " from " & strSelectedStartDate & " to "
& strSelectedEndDate & ".xls")
oWorkbooks.Close()
SummaryWorkSheet = Nothing
DetailWorksheet = Nothing
oWorkbooks = Nothing
oWorkbook = Nothing
EXL.Quit()
EXL = Nothing
DisconDatabase()
GC.Collect()
End If
Next
I know its alot of code to look at but I'm not quite sure what to
leave out incase that is what is creating the problem!
I'm really running out of ideas..
Thanks
PowaGuy