• 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.

Voorletters uit voornamen halen

  • Onderwerp starter Onderwerp starter WST
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

WST

Gebruiker
Lid geworden
18 sep 2012
Berichten
27
Ik kom er toch niet helemaal uit. Het lukt mij niet om de waarde achter de 2e spatie in de namen te vinden. Als ik ervan uit ga dat de eerste naam niet groter is dan 10 karakters kan ik het wel omzeilen maar waterdicht is het zo niet. Daarbij gaat het ook fout in geval van 2 voornamen of wanneer er 4 of meer voornamen zijn.


=TEKST.SAMENVOEGEN(ALS(ISFOUT(VIND.SPEC(".";A4;1));LINKS(A4;1));".";DEEL(A4;(VIND.SPEC(" ";A4;1)+1);1);".";DEEL(A4;(VIND.SPEC(" ";A4;10)+1);1);".")

Als laatste zou ik dit graag in een vba code willen hebben. Zoals ik het zou doen is deze formule in een cel zetten maar dat werkt wellicht wel maar is niet erg fraai.

Heeft iemand een idee hoe dit op te lossen is?


Het sheet met mijn probeersels sluit ik bij.

Bvd
WST
 

Bijlagen

Zet deze functie in een module:

Code:
Function Voorletters(volnam As String) As String
    Dim vlt() As String
    Dim i As Integer
    
    vlt = Split(volnam, " ")
    For i = 0 To UBound(vlt)
        Voorletters = Voorletters & UCase(Mid(vlt(i), 1, 1) & ".")
    Next
End Function

En dan in D4: =Voorletters(A4)
 
Laatst bewerkt:
edmoor, dat is een beetje slordig:eek:
Code:
Function Voorletters(volnam As String) As String
    Dim vlt() As String
    Dim i As Integer
    
    vlt = Split(volnam, " ")
    For i = 0 To UBound(vlt)
        Voorletters = Voorletters & UCase(Mid(vlt(i), 1, 1) & ".")
    Next
End Function
 
Wel fijn dat je er ook meteen bij verteld wat er zo slordig aan is.
Dat het ook zo kan?

Code:
Function Voorletters(volnam As String) As String
    Dim vlt() As String
    Dim i As Integer
    
    vlt = Split(volnam, " ")
    For i = 0 To UBound(vlt)
        Voorletters = Voorletters & UCase(Left(vlt(i), 1) & ".")
    Next
End Function

Er leiden altijd meer wegen naar Rome.
 
Laatst bewerkt:
Zonder systematiek in gegevens faalt ieder algoritme. Dat geldt vooral voor namen.
 
Dat blijft natuurlijk zo. Maar voor de gegevens in het voorbeeld document werkt dit prima.
 
Laatst bewerkt:
Geefnie. Bedankt voor je reactie erop :thumb:
 
Bedankt voor de reacties en hulp.

In het test sheet werkt het maar wanneer ik deze code in een module in het sheet plaats waar in ik het wil gebruiken krijg ik een foutmelding "Kan het project of bibliotheek niet vinden'.

Heeft iemand een idee waar aan dit kan liggen?

Bvd
WST



Foutmelding.JPG
 
Gevonden, bedankt. Bij extra Verwijzing stond de ontbrekende bibliotheek, deze aangezet en het werkt.

Bedankt
WST
 
Ok dan :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan