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

Samenvoegen gedeelte van cellen

Status
Niet open voor verdere reacties.

itiseye2

Nieuwe gebruiker
Lid geworden
3 apr 2007
Berichten
4
Hallo,

Ik wil de onderstaande cellen samenvoegen. alleen van cel b1 moeten alleen de 1e karakters van het tussenvoegsel worden meegenomen. Voor enkele tussenvoegsels is dit eenvoudig maar voor tussenvoegsels als:

Vincent van der Voort
Johan in 't veld

is dit wat moeilijker. Wie kan mij hierbij helpen?

Voorbeeld:

a1 = Piet
b1 = van der
c1 = Knaap

Resultaat moet zijn: PietvdKnaap


Groeten,
Itiseye2
 
En hoe ga je dit dan afkorten? Johan in 't veld

Tevens, heb je een exhaustieve lijst van tussenvoegsels die kunnen voorkomen?
 
Ben benieuwt hoe het er uit gaat zien Wigi!

Tot nu toe maak ik er dit van:
Code:
Sub namen()
Dim c As Range

For Each c In Range("A1:A100")
    If c <> "" Then
        c.Offset(, 3) = c.Value & Left(c.Offset(, 1), 1) & Mid(c.Offset(, 1), InStr(c.Offset(, 1), " ") + 1, 1) & c.Offset(, 2).Value
    End If
Next

End Sub

Ook ik zou graag een voorbeeld file zien met de tussenvoegsel welke voor kunnen.
Kunnen we een oplossing op maat maken.
 
Hoi Bedankt voor de snelle reacties!

Helaas is dat vrij lastig. Je zit nl. ook altijd met buitenlandse namen.

Bijv. Ali el Khatabi of i.d.

Ik weet natuurlijk niet welke tussenvoegsels er allemaal mogelijk zijn in zowel Nederland als het buitenland. Dus een lijst met mogelijke tussenvoegsels kan ik niet geven.

Johan in 't veld wordt johanitveld
Ali el Khatabi wordt aliekhatabi

Ik denk dat er op spatie moet worden gescheiden en de komma moet worden genegeerd of zoiets.....

Kun jullie hier iets mee?
 
Dan ben ik toch er benieuwt naar de werking van jouw database.
Met de beginletters er tussen kan je toch nooit achterhalen wat de juiste tussenvoegsels moeten zijn als je deze wilt terughalen?

Met behulp van deze code:
Code:
Sub samenvoegen()
Dim r As Range
Dim LastRow As Long

LastRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row

For Each r In Range("A1:A" & LastRow)
    r.Offset(, 3).Value = Replace(r.Value & r.Offset(, 1).Value & r.Offset(, 2).Value, " ", "")
Next
    
End Sub
kan je alle gegevens aan elkaar plakken zonder spaties ertussen.
 
Database?

Even ter verduidelijking: van tijd tot tijd krijg ik een lijst met gegevens waarin de bovenstaande gegevens staan. Uit deze gegevens wil ik een gebruikersnaam genereren welke ik vervolgens in een ander scriptje gebruik. Ik wil dus niets terughalen. ik wil puur een naam genereren uit bovenstaande gegevens.
 
Dan zou ik toch gaan voor de totale naam zonder spaties.
Das wel zo makkelijk :) en behoudt je de gehele naam.
 
Suggestie:
Code:
=KLEINE.LETTERS(SPATIES.WISSEN(A3&B3&C3&D3&E3))
en nadien met zoek en vervang eventuele tekens verwijderen.

Groet,
 
Totale naam kan ik helaas niets mee.

Zoeken en vervangen is ook niet de bedoeling. Ik wil het volledig automatisch aan de hand van een formule.

Blijkbaar is het toch moeilijker dan ik had gedacht.

Weet iemand dan misschien hoe ik een waarde van een cel, welke gescheiden is door een spatie kan scheiden naar 2 cellen. Dus als volgt:

a1 = van der

Resultaat:
b1 = van
c1 = der
 
=LINKS(A1;VIND.ALLES(" ";A1)-1)

en

=RECHTS(A1;VIND.ALLES(" ";A1)-1)

Straks onderneem ik een poging voor je oorspronkelijke vraag.

Wigi
 
Laatst bewerkt:
In je voorbeeld gebruik je de totale naam, dat bereik je ook met mijn formule. Het aantal keren dat er een accent in een voorvoegsel staat, is niet zo groot, vandaar de zoek en vervang. De vraag is natuurlijk ook of je die enkele niet gewoon kunt laten staan. Ben benieuwd waar Wim mee komt.
 
Ben benieuwd waar Wim mee komt.

Weer de reddende engel... ;)

Plak dit in VBA in een module:

Code:
Function namenaanelkaar(naam As String) As String

    Dim arrDelen As Variant, l As Long
    
    arrDelen = Split(Replace(Trim(naam), "'", ""))
    
    For l = 1 To UBound(arrDelen) - 1
        arrDelen(l) = Left(arrDelen(l), 1)
    Next
    
    namenaanelkaar = Join(arrDelen, "")

End Function

en doe dan in een cel:

=namenaanelkaar(A1)

A1 bevat dan de naam.

Wigi
 
Zolang je in je schoenen blijft, mag je die kwalificatie hebben ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan