[VBA] opdelen ActiveCell dmv tekens

Pagina: 1
Acties:
  • 357 views sinds 30-01-2008
  • Reageer

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Topicstarter
Kan de waarde in een Cell worden gesplits in variabelen d.m.v. punten, komma's, spatie's? zodat ik de inhoud kan bewerken, en kan terugzetten?

Ey!! Macarena \o/


Verwijderd

Eerst met InStr de positie van het scheidingsteken bepalen en dan met Right$ en Left$ of zoiest de tekst splitsen

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Topicstarter
Daar was ik al bang voor :'(

Ey!! Macarena \o/


Verwijderd

Op vrijdag 28 december 2001 16:03 schreef RaZ het volgende:
Daar was ik al bang voor :'(
Hoezo?

(je kunt ook gebruik maken van de MID() functie)

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Topicstarter
Nou, dat heb ik in m'n GWBasic tijd ooit eens gedaan (jaren terug) en dat was wel een aantal regels :)
Zeker omdat het meerdere scheidings tekens zijn, bleh. Ik ga een vak leren.. hehe

Ey!! Macarena \o/


Verwijderd

misschien kun je er een functie van maken waar je de string aan mee geeft en het scheidingsteken. De functie geeft dan 2 strings (of meer als je dat wilt, maar dan wordt het misschien wat moeilijker) terug.

succes ermee !

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Topicstarter
Ok, ff een voorbeeldje:
Cell="a.b.c. van der achternaam-meisjesnaam"

Nu moet dit worden:
"A.B.C. van der Achternaam-Meisjenaam"

kortom, splitsen op spatie & spreepje
krijg je dus de volgende vars:
var1="a.b.c." (deze dan UCase)
var2="van" (deze LCase)
var3="der" (LCase)
var4="achternaam" (Proper (allen A in caps)
var5="meisjesnaam" (M in caps)

dan hele handel waar bij elkaar gooien

Ey!! Macarena \o/


Verwijderd

dus?

Als je een beetje creatief gaat hobbien in VBA, dan is dat niet zo heel moeilijk lijkt me, maar ik ga het niet voor je schrijven.

Succes ermee

{edit} TIP: Spilts de sting eerst met als seperator een ' ' (spatie) en ga dan verder kijken.

Stomme vraag misschien, maar kun je deze gegevens niet in verschillende kolommen laten invullen ?{/edit}

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Omdat je het over ActiveCell hebt ga ik er vanuit dat je het over Excel hebt.

Misschien is dit een alternatief

Vb:
zet in cell A1 de naam neer in kleine letters.

in B1 voer je de volgende formule in
code:
1
=BEGINLETTERS(A1)

nu heb je ook de tussenvoegsels "van der" met hoofdletters, maar dat lijkt me niet zo'n probleem.

[input]
code:
1
a.b.c. van der achternaam-meisjesnaam

[output]
code:
1
A.B.C. Van Der Achternaam-Meisjesnaam

SIZE does matter.
"You're go at throttle up!"


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Topicstarter
Dat is nu juist het probleem, want het IS het probleem :)
tussenvoegsel horen niet in caps

Ey!! Macarena \o/


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Op vrijdag 28 december 2001 16:17 schreef RaZ het volgende:
Ok, ff een voorbeeldje:
Cell="a.b.c. van der achternaam-meisjesnaam"

Nu moet dit worden:
"A.B.C. van der Achternaam-Meisjenaam"
[...]
Hoe wil jij er achter komen welke var's wel en welke er niet met een hoofdletter moeten beginnen? Er zitten een heleboel haken en ogen aan namen... Je kan beter aan de gebruikers vertellen dat ze het goed moeten invoeren...

Voorbeeld invoer:

"j. jansen"
"j. jansen-janssen"
"j. van dam-janssen"
"o. mcdonald"
"j.th.c. van de wal-in de sloot"
"robert-jan de eerste"

En wat als men meerdere scheidingstekens naast elkaar gaat gebruiken?

"v.c. van de wal - jansen"

Ik zou er nog maar eens over na willen denken of je dit wel wil automatiseren.

edit:
wat vage halve zinnen beter gemaakt

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Ik heb toch niets te doen hier tot 17 uur dus...
* Skinny is vriendelijk vandaag.

een opzetje..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Dim c As Object
    
For Each c In Selection
    If c.Value <> "" Then
      
      StrArray = Split(c.Value, "-")
      MeisjesNaam = StrArray(UBound(StrArray))
      If UBound(StrArray) > 0 Then
        Mid(MeisjesNaam, 1, 1) = Left(UCase(MeisjesNaam), 1)
      Else
        MeisjesNaam = ""
      End If
    
      StrArray = Split(StrArray(0), " ")
    
      Tekst = ""
      
      'Voorletters
      StrArray(0) = UCase(StrArray(0))     
      'Achternaam
      Mid(StrArray(UBound(StrArray)), 1, 1) = Left(UCase(StrArray(UBound(StrArray))), 1)
    
      For Item = 0 To UBound(StrArray)
        Tekst = Tekst & " " & StrArray(Item)
      Next Item
      
      If MeisjesNaam <> "" Then
        Tekst = Tekst & "-" & MeisjesNaam
      End If
      
      c.Value = Trim(Tekst)
    End If
Next c

Even een macro maken met dit erin en toekennen aan een commandbutton. Selekteer de cellen die je wilt omzetten en ram op de knop.

Disclaimer : Niet gegarandeerd 100% goed.. ff snel in elkaar gezet en getest op wat door mij verzonnen namen.

SIZE does matter.
"You're go at throttle up!"

Pagina: 1