Beste iedereen,
Naar aanleiding van de vraag van ChristiaanEvers op 06-10-2006, ja is lang geleden ik weet het, heb ik de volgende vraag.
De macro die wordt aangeleverd werkt idd goed, alleen bij mij staan er ook nog titels en een aanhef voor. Dus dan wordt het niet goed gescheiden.
De namen zijn als volgt opgebouwd:
Aanhef: De heer of Mevrouw of Dhr./Mevr.
Titel: Altijd kleine letters, afgesloten met een punt. Soms meerdere titels, gescheiden door een spatie.
Voorletters:Hoofdletters, soms kleine h. gescheiden door een punt.
Tussenvoegsels: Altijd kleine letters
Naam: Beginletters, soms meerdere namen.
En er staan soms ook afdelingen tussen, maar dat zoek ik dan achteraf nog wel handmatig uit.
Weet iemand misschien hoe dit VB Script aangepast moet worden?
Met vriendelijke groeten
Erik Smit
Naar aanleiding van de vraag van ChristiaanEvers op 06-10-2006, ja is lang geleden ik weet het, heb ik de volgende vraag.
De macro die wordt aangeleverd werkt idd goed, alleen bij mij staan er ook nog titels en een aanhef voor. Dus dan wordt het niet goed gescheiden.
De namen zijn als volgt opgebouwd:
Aanhef: De heer of Mevrouw of Dhr./Mevr.
Titel: Altijd kleine letters, afgesloten met een punt. Soms meerdere titels, gescheiden door een spatie.
Voorletters:Hoofdletters, soms kleine h. gescheiden door een punt.
Tussenvoegsels: Altijd kleine letters
Naam: Beginletters, soms meerdere namen.
En er staan soms ook afdelingen tussen, maar dat zoek ik dan achteraf nog wel handmatig uit.
Weet iemand misschien hoe dit VB Script aangepast moet worden?
m.d.a. WigiCode:Sub NaamSplitsen() Dim X As Integer, Y As Integer, RijTeller As Long, Spatie(10) As Integer, c As Range Dim Voorvoegsel As String, Achternaam As String, Naam As String, Voornaam As String Voorvoeg = MsgBox("Wilt u de voorvoegsels in een aparte kolom?", vbYesNo) If Voorvoeg = vbNo Then StopZoek = MsgBox("Wilt u de voorvoegsels (van der, v/d) naar de kolom van de achternamen meekopiëren?", vbYesNo) End If For Each c In Range("A1", Range("A1").Range("A" & Rows.Count).End(xlUp)) Naam = Replace(Trim(c.Value), " ", " ") Y = 0 Spatie(1) = 0 For X = 1 To Len(Naam) ' Zoeken naar eerste spatie If Mid(Naam, X, 1) = " " Then Y = Y + 1 Spatie(Y) = X If StopZoek = vbYes Then Exit For ' Voorvoegsels bij Achternaam. End If Next If Spatie(1) <> 0 Then ' Spatie gevonden If Voorvoeg = vbNo Then If StopZoek = vbYes Then Y = 1 Voornaam = Mid(Naam, 1, Spatie(Y) - 1) c = Voornaam Achternaam = Mid(Naam, Spatie(Y) + 1) c.Offset(, 1) = Achternaam Else ' Voorvoegsels apart naar kolom C Voornaam = Mid(Naam, 1, Spatie(1) - 1) c = Voornaam Achternaam = Mid(Naam, Spatie(Y) + 1) c.Offset(, 1) = Achternaam If Y > 1 Then Voorvoegsel = Mid(Naam, Spatie(1), Spatie(Y) - Spatie(1) + 1) c.Offset(, 2) = Trim(Voorvoegsel) End If End If Else ' Naam naar kolom B c = Naam End If Next End Sub
Met vriendelijke groeten
Erik Smit