Functie split toepassen op een array

Status
Niet open voor verdere reacties.

alexanderinfo

Gebruiker
Lid geworden
24 mrt 2008
Berichten
95
Heren en dames van dit mooie forum,

Ik heb een probleem en hoopte dat iemand hier mij een oplossing kan bieden.

Ik heb een script die de gegevens uit een kolom op alfabetische volgorde in een combobox plaatst.
Nou zou ik graag de functie split willen toepassen op die lijst, zodat enkel het eerste woord wordt getoond in de combobox.

Code:
Private Sub UserForm_Initialize()

'trekt gegevens uit de tabel en zet deze in alfabetische volgorde

Dim i As Long
Dim MyList As Range
Dim cel As Range
Dim d As Variant, It As Variant, a As Variant


'=====//naam aanvrager//=====
Set d = CreateObject("Scripting.Dictionary")
Set MyList = Range(Cells(3, 3), Cells(Rows.Count, 3).End(xlUp))

'Create list of unique items using a Dictionary object
On Error Resume Next
For Each It In MyList
d.add It.Value, It.Value 'Add keys and items
Next

'Create an array of unique items
a = d.Items
'Sort the array
Quick_Sort a, 0, UBound(a)
cboOrg.List() = a
End Sub

Private Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As Long)
Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub

De gegevens in de betreffende kolom zijn personalia gegevens: Naam, voorletters, voorvoegsels (gescheiden met een komma)
Ik wil dus enkel de achternaam zichtbaar hebben in de combobox.

Hopelijk is er iemand die mij hiermee kan helpen.

Alvast bedankt.
 
Alexander,

Zonder voorbeeldbestand met een lijst namen en formulieren is het lastig werken.
Toch maar een poging.
Vul na de "Quick_Sort a, 0, UBound(a)" de volgende code in om de namen uit de tekst te halen.
Code:
For nLoper = 0 To UBound(a)
    myArray = Split(a(nLoper), ",")
    a(nLoper) = myArray(0)
Next

Dit gaat wel problemen opleveren als er namen zijn die dubbel voorkomen.

Veel Succes.
 
Elsendoorn2134,

bedankt voor je reactie. Het heeft mij geholpen.
Sorry voor late reactie....was er een tijdje uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan