• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Probleem met tussenvoegsel: ""van den""

Status
Niet open voor verdere reacties.
Dubbele voornamen? Zijn dat niet gewoon de doopnamen? Dat zijn toch initialen?
Zoals in post 15 staat, je wilt de achternaam weten en dan de initialen voor de juiste sortering.

Code:
Balveren, J. van
Bergh, G. van den
Bos, J. in 't
Bouwmeester, F.J.
Dieten, F. van den
Dieten, G. van
Janssen, J.M. van
Linden, A. van der
Linden, J.M. van der
Merwijk, P. van
Merwijk, A. van
Toonen, A.
Vos, G. van den
Werden, K. van der
Werden, P.C. van der
Wouters, M.W.C.
 
Laatst bewerkt:
Toets ALT+F8 en voer de macro "Blad1.VolledigeNaamSplitsenOpTussenvoegsel" uit.
"Francis Janssen Bouwmeester" en "Maria Wilhelmina Catharina Wouters" moet je maar handmatig corrigeren.
Er wordt gesplitst op een tussenvoegsel (met een spatie er voor en er achter) uit de lijst en als die er niet is dan op de eerste spatie.
 

Bijlagen

Laatst bewerkt:
Allen dank voor uw reacties.

Ik hou het op de laatste optie van Alphamax.

Ik kijk nog wel of iets kan verzinnen voor de meest gangbare uitzonderingen,
zoals bv.: Jan Jansen van den heuvel, Maria Antonia Arts van der Weerden etc.

Frans
 
Hallo,

Ik kom toch nog terug op het voorbeeld van Alphamax.

De macro deed het goed totdat er een bestand was met maar 1 naam in kolom B

Zie macro en bijgevoegd bestand.

Is dit op te lossen door Bv. #waarde te vermelden in de cel.
#waarde is dan later met zoeken dan makkelijk te selecteren.
Of iets degelijks

Frans


Code:
[SIZE=4]Public Sub VolledigeNaamSplitsenOpTussenvoegsel()
    For i = 2 To Cells(2, 2).CurrentRegion.Rows.Count
        VolledigeNaam = Application.Trim(Cells(i, 2).Value)
        Positie = InStr(VolledigeNaam, " ")
Cells(i, 3) = Left(VolledigeNaam, Positie - 1)             '' Deze regel wordt geel gearceerd      
        Cells(i, 4) = ""
        Cells(i, 5) = Mid(VolledigeNaam, Positie + 1)
        For j = Cells(2, 7).CurrentRegion.Rows.Count To 2 Step -1
            Tussenvoegsel = Cells(j, 7).Value
            Positie = InStr(VolledigeNaam, " " & Tussenvoegsel & " ")
            If Positie <> 0 Then
                Cells(i, 3) = Left(VolledigeNaam, Positie - 1)
                Cells(i, 4) = Tussenvoegsel
                Cells(i, 5) = Mid(VolledigeNaam, Positie + Len(Tussenvoegsel) + 2)
                Exit For
            End If
        Next
    Next
End Sub[/SIZE]
 

Bijlagen

Wanneer er geen spatie in de naam staat, komt er in de eerste cel "GEEN TUSSENVOEGSEL" te staan.
Code:
Public Sub VolledigeNaamSplitsenOpTussenvoegsel()
    For i = 2 To Cells(2, 2).CurrentRegion.Rows.Count
        VolledigeNaam = Application.Trim(Cells(i, 2).Value)
        Positie = InStr(VolledigeNaam, " ")
        [COLOR=#ff0000]Cells(i, 3) = "GEEN TUSSENVOEGSEL"
        If Positie <> 0 Then[/COLOR]
            Cells(i, 3) = Left(VolledigeNaam, Positie - 1)
            Cells(i, 4) = ""
            Cells(i, 5) = Mid(VolledigeNaam, Positie + 1)
            For j = Cells(2, 7).CurrentRegion.Rows.Count To 2 Step -1
                Tussenvoegsel = Cells(j, 7).Value
                Positie = InStr(VolledigeNaam, " " & Tussenvoegsel & " ")
                If Positie <> 0 Then
                    Cells(i, 3) = Left(VolledigeNaam, Positie - 1)
                    Cells(i, 4) = Tussenvoegsel
                    Cells(i, 5) = Mid(VolledigeNaam, Positie + Len(Tussenvoegsel) + 2)
                    Exit For
                End If
            Next
        [COLOR=#ff0000]End If[/COLOR]
    Next
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan