Hi All,
I have been working on a script that imports users from OUs in AD to Excel. Got it working, it formats and all. I do not know how I can get the script to delete Rows that contain Empty Cells.
Here is the script so far.
Option Explicit
Dim dtmDate, strMonth, strYear, strFileName, objExcel, objWorkbook, objWorksheet1, objWorksheet2, objRange, objRange2, objContainer, objChild
Const xlAscending = 1
Const xlYes = 1
dtmDate = Date
strMonth = Month(Date)
strYear = Year(Date)
strFileName = "C:\" & "Month_End_" & strMonth & "-" & strYear & ".xls"
'Names XLS file
Set objExcel = CreateObject("Excel.Application")
set objWorkbook = objExcel.Workbooks.Add
'sets objWorkbook to use Excel.Workbooks.Add function
set objWorksheet1 = objWorkBook.WorkSheets(1)
'sets the name objWorksheet1 to Excel.Application.Workbooks.Worksheets(1)
objExcel.Visible = True
objExcel.ActiveSheet.Name = "JSC_Users" 'names Active Sheet
objExcel.ActiveSheet.Range("A1").Activate 'Selects A1
objExcel.ActiveCell.Value = "Last_Name" 'col header 1
objWorkSheet1.Cells(1, 2).Value = "First_Name" 'col header 2
objWorkSheet1.Cells(1, 3).Value = "Description" 'col header 3
objExcel.ActiveCell.Offset(1,0).Activate 'move 1 down
Set objContainer = GetObject("LDAP://OU=New Jersey,DC=JSC,DC=COM")
objContainer.Filter = Array("user")
For Each objChild In objContainer
objExcel.ActiveCell.Value = objChild.SN
objExcel.ActiveCell.Offset(0,1).Value = objChild.GivenName
objExcel.ActiveCell.Offset(0,2).Value = objChild.Description
objExcel.ActiveCell.Offset(1,0).Activate 'move 1 down
Next
Set objContainer = GetObject("LDAP://OU=Long Island,DC=JSC,DC=COM")
objContainer.Filter = Array("user")
For Each objChild In objContainer
objExcel.ActiveCell.Value = objChild.SN
objExcel.ActiveCell.Offset(0,1).Value = objChild.GivenName
objExcel.ActiveCell.Offset(0,2).Value = objChild.Description
objExcel.ActiveCell.Offset(1,0).Activate 'move 1 down
Next
Set objContainer = GetObject("LDAP://OU=NYC,DC=JSC,DC=COM")
objContainer.Filter = Array("user")
For Each objChild In objContainer
objExcel.ActiveCell.Value = objChild.SN
objExcel.ActiveCell.Offset(0,1).Value = objChild.GivenName
objExcel.ActiveCell.Offset(0,2).Value = objChild.Description
objExcel.ActiveCell.Offset(1,0).Activate 'move 1 down
Next
objworksheet1.Columns.AutoFit()
'Autosize for Column Width for Work Sheet 1
'objWorkSheet1.Range("A2:C300").Activate
'highlight Column A Row2 : Column C Row 200
set objRange = objWorksheet1.UsedRange
set objRange2 = objExcel.Range("A1")
objRange.Sort objRange2, xlAscending, , , , , , xlYes
'Sorts ALL used Cells by Column 1 (A1). xlAscending, sorts ascending, xlYes means Header Row=Yes
set objWorksheet2 = objWorkBook.WorkSheets(2)
objWorksheet2.Name = "Assentor Users"
objWorksheet2.activate 'activates Assentor Users Work Sheet
'objWorkBook.SaveAs(strFileName)
'objExcel.Quit
____________________________________________________
Any help is appreciated.
Thanks
by: sirbountyPosted on 2007-04-04 at 09:11:46ID: 18851657
Something like this?
(0,1).Valu e = objChild.GivenName (0,2).Valu e = objChild.Description (1,0).Acti vate 'move 1 down
objContainer.Filter = Array("user")
For Each objChild In objContainer
If objChild.SN <> "" Then
objExcel.ActiveCell.Value = objChild.SN
objExcel.ActiveCell.Offset
objExcel.ActiveCell.Offset
objExcel.ActiveCell.Offset
End If
Next