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
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
>.
>
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 >
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-----
>.
>
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!
>.
>
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
>.
>
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...
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 >
>-----Oorspronkelijk bericht-----
>.
>
keepitcool <xrrcv...@puryyb.ay> schreef in berichtnieuws
Xns93989652BBF...@207.46.248.16...
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
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...
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 >
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...