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

Zoeken en vervangen

Status
Niet open voor verdere reacties.

erpel78

Nieuwe gebruiker
Lid geworden
10 dec 2019
Berichten
4
Wie kan mij helpen. Ik wil graag binnen een kolom zoeken naar namen, en als die naam ook voorkomt in een andere kolom dan moet hij een waarde uit een andere kolom geven. Dus het is zoeken en vervangen, maar dan voor het hele werkblad en voor meerdere gegevens.

Voorbeeld.

In kolom A staan namen voluit, als deze ook voorkomen in kolom C, dan moeten de username (uit Kolom B) worden weergegeven (vervangen) in kolom A. Iemand die me hier bij kan helpen? Zie ook bijlage.

Dank je wel :d
 

Bijlagen

een rare manier om een username aan iemand toe te kennen.
 
Ik begrijp er niet veel van en dat is nog netjes uitgedrukt. De rest van de helpers blijkbaar ook niet.:d

Jouw voorbeeld impliceert dat de naam Gerard de Graaf de Username BARTDEVR heeft en dat de volledige naam Willem Jansen is. Hier ben ik de weg al kwijt.

In 'Gewenst resultaat:' wil je dat de naam GERARDDG is bij een username BARTDEVR die dan ook weer Willem Jansen is?

Waarom zit er geen enkele consistentie in het het toekennen van de gebruikersnamen? Waarschijnlijk zal het wel met een VLOOKUP() of INDEX() en MATCH() functie kunnen. Maar wat het moet worden is nu een beetje een raadsel.
 
Ik begrijp het wel hoor @VenA :P, maar het is niet waterdicht zoals in onderstaande code.
Bij meerdere zelfde voornamen gaat het natuurlijk fout.

Verwijder rij 2.

Code:
Sub hsv()
Dim sv, hs, i As Long, ii As Long, n As Long
sv = Cells(1).CurrentRegion
n = 1
For i = 2 To UBound(sv)
  hs = Application.Match(sv(i, 1), Columns(3), 0)
  If IsNumeric(hs) Then
    For ii = 2 To UBound(sv)
      If LCase(sv(ii, 2)) Like LCase(Split(sv(hs, 3))(0)) & "[a-z]*" Then
           n = n + 1
           sv(n, 1) = sv(ii, 2)
           Exit For
      Else
        sv(i, 1) = ""
      End If
    Next ii
  End If
Next i
 Cells(1, 8).CurrentRegion.ClearContents
 Cells(1, 8).Resize(UBound(sv), 3) = sv
End Sub

Als je de juiste Username naast de volledige naam zet is het een makkie en correct.
 
Sorry voor de onduidelijkheid.

Ik wil dat de gebruikersnaam in kolom A wordt omgezet in de username: dus Willem Jansen moet WILLEMJ worden.
 
Zoiets had ik ook in de pen @HSV:)
Vandaar deze opmerking in #4 "Waarom zit er geen enkele consistentie in het het toekennen van de gebruikersnamen?"
 
Je kan het gebruiken, maar je hebt er niets aan (het is gemaakt ter illustratie).

Doe zoals ik omschreef...
Als je de juiste Username naast de volledige naam zet is het een makkie en correct.
....en je krijgt vast een betere code.

Druk Alt+F11.
Menu invoegen → module.
Plak de code in het witte vlak.
Sluit VB editor.

Druk nu Alt+F8 en uitvoeren.
Ik zie het morgen wel wat er van gekomen is.

Ps. bestand bijgevoegd en je kan direct beginnen met Alt+F8 en dan uitvoeren.
 

Bijlagen

Zoiets had ik ook in de pen @HSV:)
Vandaar deze opmerking in #4 "Waarom zit er geen enkele consistentie in het het toekennen van de gebruikersnamen?"

Het is gewoon heel slordig uitgevoerd.

De ene keer me een D, en een ander met DE.


Aan de andere kant?
De gegevens komen van diverse bladen las ik ergens, dus daar zit hem de kneep denk ik.
 
Omdat ik even een voorbeeld had gemaakt.

ik heb dus in een werkblad de volledige namen. Die wil ik vervangen door de username.

De username haal ik uit een andere werkblad omdat daar (in een andere kolom) ook de volledige naam staat, zodat je daar op kunt matchen dacht ik.
 
Ik heb de boel afgesloten, je zult met een representatief bestand moeten komen, zodat je beter geholpen kan worden.
 
Had ik volgens mij al ergens geschreven.
Waarschijnlijk zal het wel met een VLOOKUP() of INDEX() en MATCH() functie kunnen
Dus zoek er maar eens op.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan