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

Naam omdraaien

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
764
Heb een klein form gemaakt waar ik enkel een naam van een collega wil invoeren
onder aan de rij blijft de regel "geen Vossen aanwezig staan"

maar wat ik wel graag zou willen is de mogelijkheid om de namen om te draaien
dus eerst de achternaam en dan de voornaam en anders om (middels een knop)
heb hier een hele mooie formule voor:
Code:
=RECHTS(A1;LENGTE(A1)-VIND.ALLES("$";SUBSTITUEREN(A1;" ";"$";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";"")))))&" "&LINKS(A1;VIND.ALLES("$";SUBSTITUEREN(A1;" ";"$";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";""))))-1)
dat werkte heel goed
ook als er meer dan 2 namen nodig zijn zoals: Peter paul de Vries = het resultaat Vries Peter Paul de (wat wil je nog meer)
maar nu ik een extra rij invoer om de laatste regel onderaan te laten staan (Geen vossen aanwezig"ben ik slachtoffer van mijn eigen vernuf!
want als ik nu de naam van A1 wil omdraaien is er na een nieuwe invoer een lege cel
mijn vraag is dan ook is er een andere mogelijkheid om een naam om te draaien in VBA
of deze formule te gebruiken !?

Formulier
Bekijk bijlage formulier-regie.xlsm


bvd
 
Laatst bewerkt:
Heb 2 mogelijkheden ingebouwd.
 

Bijlagen

  • formulier-regie.xlsm
    26,9 KB · Weergaven: 95
Hoi Cobbe
Bedankt voor je bijdrage
je zegt dat je 2 mogelijkheden hebt ingebouwd (onder de knop voornaam en ?)
het werkt prima voor 1 naam
maar kan het ook voor een hele kolom
enne [H1] =? (wordt dat de formule in deze cel "opgeslagen")
 
Laatst bewerkt:
Test het zo eens.
Code:
Private Sub CommandButton2_Click()
sq = Range(Range("B2"), Range("B2").End(xlDown)) 'maak een 1 dimensionale array aan.
ReDim arr(1 To UBound(sq))  'declareren van de grootte voor de array
  For i = 1 To UBound(sq) - 1 'van 1 tot de laatste cel - 1 (1 tot laatste index - 1 van array)
       sn = Split(sq(i, 1))  'splits de gegevens van sq(i, 1) door een spatie
      arr(i) = sn(UBound(sn)) & " " & Mid(sq(i, 1), 1, Len(sq(i, 1)) - Len(sn(UBound(sn))) - 1)
'array-index (i) = het laatste deel van split sn &" "& eerste delen van sq(i, 1)  = deel(sq(i,1),1,lengte van sq(i,1)-lengte laatse woord van split)
  Next i
Range("B2").Resize(UBound(sq) - 1) = Application.Transpose(arr) 'schrijf de array in één keer weg naar B2 met het aantal rijen diep van de lengte van ubound(sq)
End Sub
 
Laatst bewerkt:
HSV
Ik weet niet wat er staat in jouw code
probeer het te lezen maar dit is echt (ver) gevorderde
het enige wat ik kan zeggen is dat het gewoon geweldig werkt
ga het maar gewoon gebruiken haha
helemaal top
thanks:thumb:
 
Graag gedaan,

Ik heb er een beschrijving bij gedaan.
Zet de code erin, en het is beter leesbaar doordat de beschrijving groen van kleur wordt.
 
of

Code:
Sub M_snb()
    sn = Columns(2).SpecialCells(2)
    
    For j = 2 To UBound(sn)
       sp = Split(sn(j, 1))
       sn(j, 1) = sp(UBound(sp)) & " " & Trim(Replace(sn(j, 1), sp(UBound(sp)), ""))
    Next
    
    Columns(2).SpecialCells(2) = sn
End Sub
 
Laatst bewerkt:
Ja, deze "of" is natuurlijk logischer. :thumb:
Zet nog even een -1 achter de ubound(sn).
 
Oke heb het werkt
is de uitleg het zelfde als de code van HSV
ook wordt met de korte code van SNB ook de laatse (onderste rij) omgedraaid
dat is in de code van HSV wel mooi geregeld
 
Laatst bewerkt:
Gebruik het bruikbare deel, en zet dat in de Commandbutton1_Click gebeurtenis.
 
Je hebt je bericht aangepast zie ik.
Ja, deze is min of meer gelijk aan die van mij.
Daar ik overgestapt ben op een ander array is de code van mij langer (twee array's).
@snb maakt ook gebruik van "replace", wat de code weer korter maakt.
 
HSV
Ja ik heb het werkend en hoewel ik al begrepen heb een zo kort mogeliijke code een pre is

werkt die van jou wel precies zo als ik het graag wil.
 
Laatst bewerkt:
Oke die tip van jou:
Zet nog even een -1 achter de ubound(sn).
zorgt er voor dat de laatste van de rij niet mee doet
 
@snb kan heel veel codes uit de losse pols schrijven zonder te testen.
Maar soms ziet hij dan toch wel eens iets over het hoofd denk ik. ;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan