View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Striker3070 Striker3070 is offline
external usenet poster
 
Posts: 16
Default Array again limit

Sorry, saying that wrong. I can add a watch to objGroup.Member and it has
1499, from 0-1499 so 1500 members.

"Striker3070" wrote in message
...
well as soon as the objuser.CN gets, it is 1499

"Helmut Meukel" wrote in message
...
Just for clarity:
Is intSize = 1499 at the end of the For-Each-Loop?

Helmut.



"Striker3070" schrieb im Newsbeitrag
...
using the following to get Active Directory group membership, is it
possible that once I return a value say "Bob Smith" that is NOT unique
this will stop. I return 1499 members names no matter how many people
are in the group. I've added people to the group to be sure, I still
get 1499 as a result.

I am NOT returning a domain ID which would be unique, so perhaps that's
an issue.



Sub ADGroupMembers()
Dim arrNames()
intSize = 0

'Let's clear the range first
Range("SESCREEN").ClearContents

'Get the AD Group Info for BATY-SESCREEN
Set objGroup = GetObject("LDAP://CN= BATY-SESCREEN,OU=Security
Groups,DC=baty,DC=com")

'Getting User Names and increase the array size
For Each strUser In objGroup.Member
Set objuser = GetObject("LDAP://" & strUser)
ReDim Preserve arrNames(intSize)
arrNames(intSize) = objuser.CN
intSize = intSize + 1
Next

'In order to sort, we have to convert to Uppercase.
For i = (UBound(arrNames) - 1) To 0 Step -1
For j = 0 To i
If UCase(arrNames(j)) UCase(arrNames(j + 1)) Then
strHolder = arrNames(j + 1)
arrNames(j + 1) = arrNames(j)
arrNames(j) = strHolder
End If
Next
Next

'Fill the SESCREEN range with the array values
Range("SESCREEN").Value = WorksheetFunction.Transpose(arrNames)

End Sub