Alleen laatste punt (eind van de zin) verwijderen

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
901
Beste Forumleden,

Ik ben op zoek naar een vba-code in Excel die, vanuit een bepaalde cel, alleen de laatste punt uit de tekst verwijderd. Inmiddels heb ik een code die alle punten verwijderd, hetgeen dus niet de bedoeling is.

Code:
If [C243] Like "*." Then [C243].Replace ".", ""

Alvast heel hartelijk dank.

Robert
 
Doe er eens een voorbeeld bestandje bij, zodat we kunnen zien wat je precies wilt. Want zijn er cellen mét punt(en), en cellen zónder punten? Gaat het consequent om één punt, of kunnen er soms meerdere punten staan? Maakt allemaal uit voor de oplossing.
 
Bedankt voor jouw snelle reactie.

Helaas is het lastig om een bestand mee te sturen omdat er veel juridische informatie in staat die niet op straat mag komen te liggen. Wel kan ik jou meer informatie geven over de door jou gestelde vragen:

In cel C243 staat veel informatie en in uitzonderlijke gevallen kan het zijn dat er alleen aan het eind een punt staat. Ook is het mogelijk dat de laatste punt er niet staat, dan staan er zelfs helemaal geen punten in, maar die kans is erg klein. Hierbij een voorbeeld van een zin waar niets in hoeft te gebeuren: "op 31 mei 2021 rond 10.45 uur, nadat ik diverse pogingen had ondernomen om in contact te treden met de (indirect) bestuurder, telefonisch contact gehad me een persoon die zich voorstelde als de heer J.A. Jansen, (indirect) bestuurder van onder andere J.A. Jansen B.V."

Een voorbeeld waar de laatste punt wel moet worden verwijderd: "op 31 mei 2021 rond 10.45 uur, nadat ik tevergeefs diverse pogingen had ondernomen om in contact te treden met de (indirect) bestuurder, hoorde ik dat de telefoon niet werd beantwoord. Later die dag, rond 11.45 uur, heb ik via genoemd telefoonnummer nog een keer een poging ondernomen om telefonisch in contact te treden, wederom zonder resultaat."

Voornoemde komt uiteindelijk via mailmerge als een opsomming in een worddocument te staan waar deze zin eindigt op ";". Daarom moet alleen de laatste punt worden verwijderd, echter bij B.V. dus niet!!!
 
Er wordt ook niet om je echte document gevraagd maar om een voorbeeld.
 
Met deze kun je even testen.
In cel A2 vindt de vervanging plaats in onderstaand voorbeeld.

Code:
Sub jvr()
a = StrReverse(Replace(StrReverse([a2]), ".", "", 1, 1))
End Sub

Edit: na het lezen van je tweede post, kan het vermoedelijk ook gewoon met de functie LEFT
 
Laatst bewerkt:
Wat doet een punt ertoe als jij in plaats van verwijdert verwijderd gebruikt ?
Formuleer eerst alle regels wanneer een punt moet worden verwijderd en wanneer je de punt niet verwijdert.
Pas dan kun je dit als een regel aan de computer voeden.
 
#5 heb ik geprobeerd via:
Code:
a = StrReverse(Replace(StrReverse([C243]), ".", "", 1, 1))
helaas geen resultaat.

In antwoord op #6
Code:
If [C243] Like "*." and Not [C243] Like "* B.V." Then
 
Hierbij een voorbeeldbestand. Ik hoop dat het zo lukt.
 

Bijlagen

  • Puntverwijderen.xlsm
    15,5 KB · Weergaven: 26
De code van JVeer doet het prima. Het resultaat wordt opgeslagen in de variabele a. Kan je natuurlijk zelf even aanpassen naar [A2]
 
Misschien dat deze voldoet

Code:
Sub jvr()
If InStr(Mid([a2], Len([a2]) - 5), "B.V.") = 0 Then [a2] = StrReverse(Replace(StrReverse([a2]), ".", "", 1, 1))
End Sub

Met Left dus:
Code:
If InStr(Right([a2], 5), "B.V.") = 0 Then [a2] = Left([a2], Len([a2]) - 1)
 
Laatst bewerkt:
De code werkt perfect :thumb:. Ik wil jullie allen heel hartelijk danken voor het meedenken en het aanreiken van de oplossing.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan