• 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 in hoofdletters met punten

Status
Niet open voor verdere reacties.

Boboes

Gebruiker
Lid geworden
5 nov 2016
Berichten
45
Ik ben op zoek naar een VBA-oplossing om bij invoer van voorletters in een cel, deze direct om te zetten in hoofdletters met punten. Ik vond al de volgende functiecode op dit forum:

Code:
Function voorletters(sInhoud As String) As String
    Dim j As Integer
    For j = 1 To Len(Replace(sInhoud, ".", ""))
        voorletters = voorletters & UCase$(Mid(Replace(sInhoud, ".", ""), j, 1) & ".")
    Next
End Function

Werkt op zich goed in de meeste gevallen:
aab wordt A.A.B.
a.a.b. wordt A.A.B.
A.A.B. blijft A.A.B.

Maar zouden er (per ongeluk) spaties in staan dan gaat het niet goed. Bijvoorbeeld: aa b wordt A.A..B. en spatie op eerste positie wordt bij aab dan .A.A.B. Dus alle spaties zouden van tevoren verwijderd moeten zijn. Hoe krijg ik dat in die code voor elkaar? Zal misschien wel makkelijk zijn maar ik kom er helaas niet uit.
 
Code:
Function voorletters(sInhoud As String) As String
    Dim j As Integer
    sInhoud = Replace(Replace(sInhoud, ".", ""), " ", "")
    For j = 1 To Len(sInhoud)
        voorletters = voorletters & UCase(Mid(sInhoud, j, 1) & ".")
    Next
End Function
 
Bedankt Timshel, hiermee is het probleem opgelost! Het is een kleine maar waardevolle aanpassing; ik zag het zelf zo niet zitten.

Nogmaals hartelijk dank! :d
 
Nog eentje dan
Code:
Function Voorletter(sI As String) As String
    Voorletter = Join(Filter(Evaluate("transpose(upper(mid(""" & sI & """,row(1:" & Len(sI) & "),1)))"), " ", False), ".") & "."
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan