Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

punten tussen initialen

1,553 views
Skip to first unread message

Nielsen

unread,
Jun 12, 2003, 7:40:35 AM6/12/03
to
Beste allemaal,

Ik heb een groot bestand met namen en initialen in het
kader van een mailing. Nu staan er tussen de initialen
geen spaties en punten. Er staat bijv. MPL de Groot; SAK
Janssen. Nu wil ik in 1 x punten tussen de initialen
zetten. Weet iemand hier een formule voor? (Zelfs met mijn
Excel boek van 1000 pagina's kom ik er niet uit)

Alvast bedankt!!!

Groet, Nielsen Vermij

Ingrid Baplue

unread,
Jun 12, 2003, 8:14:20 AM6/12/03
to
Option Explicit

Sub Punten()
Dim rng As Range
Dim i As Integer
Dim tmp As String
For Each rng In Selection
If Not (rng.HasFormula Or rng = "" Or Mid(rng, 2, 1)
Like "[a-z]") Then
i = 1
tmp = ""
Do
tmp = tmp & Mid(rng, i, 1) & "."
i = i + 1
Loop Until Mid(rng, i, 1) Like "[!A-Z]"
rng = tmp & Right(rng, Len(rng) - i + 1)
End If
Next rng
End Sub

Ingrid

>.
>

keepitcool

unread,
Jun 12, 2003, 8:46:38 AM6/12/03
to
'Code voor Module1
Option Explicit
Function Puntjes(c As Range)
Dim i%, s$
For i = 1 To Len(c): s = s & Mid(c, i, 1) & ".": Next
Puntjes = s
End Function

Sub DoePuntjes()
Dim c As Range
For Each c In Selection
c = Puntjes(c)
Next
End Sub

Doe t met een functie
b1=Puntjes(a1)
of Selecteer een range en run DoePuntjes

keepITcool

< email : keepitcool chello nl (with @ and .) >
< homepage: http://members.chello.nl/keepitcool >

Nielsen

unread,
Jun 12, 2003, 8:53:54 AM6/12/03
to
Ingrid,

Bedankt voor je snelle antwoord! Ik ben slecht in macro's,
al helemaal met VB.

Hij geeft echter een fout in onderstaande regel:


If Not (rng.HasFormula Or rng = "" Or Mid(rng, 2, 1)

Hoe nu verder? Is er geen eenvoudiger oplossing?

Ik hoop dat je een alternatieve oplossing voor mij hebt!

bedankt alvast, groet Nielsen

>-----Oorspronkelijk bericht-----

>.
>

Nielsen

unread,
Jun 12, 2003, 9:10:01 AM6/12/03
to
Ik weet dat dit een site is voor "ontwikkelaars", maar ik
kom er niet uit! De macro geeft steeds een fout in
de "compile bla bla". Ra ra.

VB is niet makkelijk! Is er niet een oplossing met een
functie? Iets met =text (xxxxxxx)?

Hopelijk nog een laatste oplossing voor mij anders moet ik
handmatig puntjes gaan zetten .... :-)

Groetjes!

>.
>

Rob

unread,
Jun 12, 2003, 9:52:22 AM6/12/03
to
Nielsen,

ziet er naar uit dat Ingrid off line is.
Macro van Ingrid klopt, maar ik denk dat jij de regel in
tweeen hebt geknipt. Het stukje "Like...." hoort achter de
regel die je als foutmelding krijgt. Dan heb je een
volledige "If () like () then" statement.
Succes.

Rob

>.
>

Luc.Heyndrickx

unread,
Jun 12, 2003, 9:57:19 AM6/12/03
to
Nielsen,

Dit is helemaal geen site voor specialisten, maar voor iedereen die met een
excel-probleem zit. Vermoederlijk doe je gewoon een kleinigheid verkeerd,
maar dat is natuurlijk geen redenen om dan maar meteen een andere oplossing
te zoeken.
Stap voor stap (Ik neem hier de oplossing van KeepItCool)
Ga naar de VBA editor (ALT + F11).
Klik in de projectverkenner (Een hoop mapjes die je in een linkervenster
ziet staan) rechts, en kies voor invoegen 'module'.

Plak daarna de code van KeepItCool:
'**************************


Function Puntjes(c As Range)
Dim i%, s$
For i = 1 To Len(c): s = s & Mid(c, i, 1) & ".": Next
Puntjes = s
End Function

Sub DoePuntjes()
Dim c As Range
For Each c In Selection
c = Puntjes(c)
Next
End Sub

'************************

Sluit daarna de VBA editor, selecteer alle tekst waar je puntjes tussen wil,
en ga via Extra naar macro's.

Klik op 'DoePuntjes'

Succes,

Luc


"Nielsen" <n.ve...@12move.nl> schreef in bericht
news:0a6d01c330e3$ee9b9930$a501...@phx.gbl...

keepitcool

unread,
Jun 12, 2003, 10:34:26 AM6/12/03
to
als aanvulling op de uitleg van Luc.

als je mijn copy in een module hebt geplakt
heb je 2 mogelijkheden:

1. Gebruik de UserDefinedFunctie Puntjes in je werkblad


b1 =Puntjes(a1)

2. Selecteer een paar cellen, en voer de macro DoePuntjes uit.


Laat ff weten of t gelukt is.


keepITcool

< email : keepitcool chello nl (with @ and .) >
< homepage: http://members.chello.nl/keepitcool >

Nielsen

unread,
Jun 12, 2003, 11:09:46 AM6/12/03
to
perfect!! dankjewel! ik had een iets gedetailleerdere
uitleg nodig! allemaal bedankt!


>-----Oorspronkelijk bericht-----

>.
>

Belinda_s

unread,
Jun 12, 2003, 4:44:15 PM6/12/03
to
Punten tussen initialen.
De gegeven routine van KeepItCool werkt perfect zolang er in de kolom
(ranch) alleen initialen staan.
Maar kijk eens naar het resultaat als er al een punt achter of tussen de
initialen staan staan.
Voer de macro eens 2 of 3 uit over dezelfde ranch.
Kan de macro zodanig aangepast worden dat als er al een punt staat er geen
extra punt(en) worden toegevoegd?
Op zich een nuttige en handige routine als bovenstaande mogelijk ook
ingebouwd zou kunnen worden.
Scheelt veel controle werk -:)
Belinda


keepitcool <xrrcv...@puryyb.ay> schreef in berichtnieuws
Xns93989652BBF...@207.46.248.16...

Ingrid Baplue

unread,
Jun 13, 2003, 12:58:23 AM6/13/03
to
Deze macro zal enkel punten plaatsen tussen initialen die in het begin van
de cel en in hoofdletters staan:

Option Explicit

Sub Punten()
Dim rng As Range
Dim i As Integer
Dim tmp As String
For Each rng In Selection

If Not (rng.HasFormula Or _
rng = "" Or _
Mid(rng, 2, 1) = "." Or _


Mid(rng, 2, 1) Like "[a-z]") Then
i = 1
tmp = ""
Do
tmp = tmp & Mid(rng, i, 1) & "."
i = i + 1

Loop Until i > Len(rng) Or _


Mid(rng, i, 1) Like "[!A-Z]"
rng = tmp & Right(rng, Len(rng) - i + 1)
End If
Next rng
End Sub

Ingrid

Belinda_s schreef in news:bcaomp$mbn$1...@reader10.wxs.nl

Luc.Heyndrickx

unread,
Jun 13, 2003, 1:37:33 AM6/13/03
to
Belinda,

Wat dacht je hiervan:
Via Bewerken > zoeken,
en daar typ je een punt in.
Daarna vervangen (en hier vul je niets in)... Alles vervangen.
Zo zijn alle punten verdwenen, en kan je toch nog die macro uitvoeren.

Luc

"Belinda_s" <beli...@planet.nl> schreef in bericht
news:bcaomp$mbn$1...@reader10.wxs.nl...

keepitcool

unread,
Jun 13, 2003, 5:40:51 AM6/13/03
to
Dit is korter en doet t zelfde

Function Puntjes(c As Range)
Dim i%, s$, t&


For i = 1 To Len(c)
s = s & Mid(c, i, 1) & "."
Next

Puntjes = WorksheetFunction.Substitute(s, "...", ".")
End Function

Sub DoePuntjes()
Dim c As Range

For Each c In Selection.SpecialCells(xlCellTypeConstants, xlTextValues)


c = Puntjes(c)
Next
End Sub

keepITcool

< email : keepitcool chello nl (with @ and .) >
< homepage: http://members.chello.nl/keepitcool >

Ruud

unread,
Jun 12, 2003, 10:19:13 AM6/12/03
to
Het werkt anders heel goed, deze methode.

de fout die je krijgt is het gevolg van het door kopieren afbreken van de
regel:

If Not (rng.HasFormula Or rng = "" Or Mid(rng, 2, 1)

Like "[a-z]") Then

moet achter elkaar staan. (misschien gaat het hier ook fout... :-) )

If Not (rng.HasFormula Or rng = "" Or Mid(rng, 2, 1)
Like "[a-z]") Then

of je moet een underscore achter de eerste regel zetten.

If Not (rng.HasFormula Or rng = "" Or Mid(rng, 2, 1) _
Like "[a-z]") Then

vervolgens dat gedeelte selecteren waar je de aanpassingen voor moet doen,
en de macro aanroepen..

die tijd die je bespaart kun je lekker op een terras gaan zitten :-)

Veel plezier...

"Nielsen" <n.ve...@12move.nl> wrote in message
news:09ee01c330e1$ae35c480$a601...@phx.gbl...

0 new messages