View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
NickHK NickHK is offline
external usenet poster
 
Posts: 4,391
Default Extract all CN='Name' from a Active Directory data-dumped-cell

Not tested much, but here's something that should give you a start. If you
will only ever need to pull out the names (marked by "CN=") then you can
simplity the code a lot. Also, if the delimeters will never change, you can
remove those optional arguments. You should add error/input checking.
Depending how you intend to use the data, you could output an array of
strings instead.

Public Function GetInfoFromADDump(InCell As Range, _
Optional BlockDelim As String = ";",
_
Optional FieldDelim As String = ",",
_
Optional FieldIndex As Long = 0, _
Optional FieldMarker As String =
"CN=", _
Optional OutDelim As String = ",") _
As String

Dim Arr As Variant
Dim Arr2 As Variant

Dim i As Long
Dim j As Long

Dim TempStr As String

Arr = Split(InCell, BlockDelim)
For i = 0 To UBound(Arr)
If FieldIndex = 0 Then
'Only a single filed from each block, defined by the index
TempStr = TempStr & Mid(Split(Arr(i), FieldDelim)(FieldIndex),
Len(FieldMarker) + 1) & OutDelim
Else
'Multiple fields from each Block defined by FieldMarker
Arr2 = Split(Arr(i), FieldDelim)
For j = 0 To UBound(Arr2)
If Left(Arr2(j), Len(FieldMarker)) = FieldMarker Then
TempStr = TempStr & Mid(Arr2(j), Len(FieldMarker) + 1) &
OutDelim
End If
Next
End If
Next

'Strip the last ","
GetInfoFromADDump = Left(TempStr, Len(TempStr) - 1)

End Function

Also, you can deal directly with AD from VB/VBA, if you feel so inclined :
http://www.codeguru.com/forum/archiv.../t-309184.html

NickHK

"mateo561" wrote in message
...
One of my Administrator types is dumping information from AD so some
mid-level manager can justify his position and salary (too sarcastic??

;-)..
anyway.. AD dumps very verbose information into his cells.

Example: In cell A2 you have...

CN=Daniel ****,OU=Desktops,OU=Users,OU=Executive
Offices,OU=FCC,DC=Sugar,DC=corp;CN=Rich

******,OU=Laptops,OU=Users,OU=Service
Center,OU=FCC,DC=Sugar,DC=corp;CN=Charles ******... and on and on.

(names changed to protect the innocent)

these text stings get very long.. some even hit the character limit for
cells.. but all that my guy wants are the names of the users, which of

course
are represented after the "CN=" and ends with the next ","

Desired Result: In cell B2 show...
Daniel ****, Rich ******, Charles ******

I can easily pull "Daniel ****" using text functions but I lose it when I
have then find Rich, and Charles, and Tom, Dick and Harry.. until

somewhere,
someplace it all ends with the LAST name which could be 7 names, 32 names,

or
124 names.

So off to the Excel Discussion Groups to nab.. Do'h... 'use' some VBA from
someone who really knows what they are doing.

I have been searching through your forums, reading VB questions from the
unwashed masses and checking out the suggestions from the enlightend ones.
Visited sites like contextures, peltiertech, cpearson and more. I have

tried
to modify some code that was posted both on this forum and others and

learned
alot of good, although ancillary, stuff in the process.

I now post this questions to the world, as I am brain fried, body tired,

mad
at myself for not being smarter (or better looking) and besides, I am out

of
alcohol.

Any help in this issue would be much appreciated and it sure would make me
look good to those mid-level managers as well. I have used this forum
numerous times in the past and you folks have always come through to
enlighten my brain and boost my intellect (at least in the eyes of those
managers).

So thanks in advance and I hope you make me look good yet again!

Version: Excel 2003 SP2