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

VBA " vervangen door ' lukt niet aan het begin van een zin

Status
Niet open voor verdere reacties.

IlonadeGroot

Gebruiker
Lid geworden
1 apr 2011
Berichten
167
Ik heb via het forum heel veel hulp gekregen om dit bestand voor elkaar te krijgen.
Ik loop nu alleen nog tegen een probleempje aan.
Een " wordt vervangen door een ', echter gaat dit aan het begin van de zin niet goed.
Ik zie in de cel geen ', wel als je in de balk kijkt, maar deze wordt met inlezen in een ander systeem ook niet herkend als '.
Iemand enig idee hoe ik dit aan kan passen zodat het echt als teken gezien wordt en niet als zijnde dat de cel format tekst is?

Ik gebruik Excel 2013 ENG.
 

Bijlagen

Als je een enkele quote aan het begin van een regel wilt zien, plaats er dan twee.
Of begin de regel met een spatie en dan een enkele quote.
 
Laatst bewerkt:
Hoi Edmoor,

Een spatie aan het begin is niet de bedoeling omdat de tekst dan niet netjes in ons andere systeem komt te staan.
Ik heb helaas geen idee hoe ik in de VBA kan aangeven dat wanneer de " zich aan het begin van de cel bevindt dat er dan 2x ' geplaatst moet worden.
 
een enkel of dubbel aanhalingsteken vooraan wordt behandeld om van iets een string (tekst) te maken.
Als dat ander systeem daarmee problemen heeft, omdat die zich aan bovenstaande afspraak houdt, dan zal je vermoedelijk best 2 maal dat enkel aanhalingsteken zetten.
Dat kan door onderstaande rode tekst op die plaats toe te voegen aan de macro
Code:
Sub VertaalNaarPortal(c)

   lengte = Len(c.Value)                         'lengte van je tekst
   If lengte = 0 Then: Exit Sub
   tekst = c.Value
   A = ""
   vorig = False

   For i = 1 To lengte                           'alle letters aflopen
      stijl = c.Characters(Start:=i, Length:=1).Font.FontStyle
      vet = (InStr(1, "VetBold", stijl, 1) > 0)  'kijk naar de fontstyle van die letter, engelse versie Bolt ipv Vet !!!
      If vet <> vorig Then A = A & IIf(vet, "<B>", "</B>")   'fontstyle gewijzigd sinds vorige keer, dan gepaste teken toevoegen
      vorig = vet                                'fontstyle onthouden voor volgende letter
      A = A & Mid(tekst, i, 1)                   'letter toevoegen
   Next

   A = Replace(A, Chr(10) & Chr(10), "<br/> <br/>", , , vbTextCompare)   'dubbele enter vervangen
   A = Replace(A, Chr(10), "<br/>", , , vbTextCompare)   'enkele enter vervangen
   A = Replace(A, Chr(34) & Chr(34), Chr(39), , , vbTextCompare)   ' teken "" vervangen door '
   A = Replace(A, Chr(34), Chr(39), , , vbTextCompare)   ' teken " vervangen door '
   A = Replace(A, Chr(147), Chr(39), , , vbTextCompare)   ' teken “ vervangen door '
   A = Replace(A, Chr(148), Chr(39), , , vbTextCompare)   ' teken ” vervangen door '
  [COLOR="#FF0000"] If Left(A, 1) = "'" Then A = "'" & A          'een enkel aanhalingsteken vooraan verdubbelen[/COLOR]

   sp = Split(A, Chr(149))                       'splitsen op bullet
   na = "</li> </ul>"
   voor = "<ul> <li>"
   A = ""
   For i = 0 To UBound(sp)

Zie dat, door Edmoor, ook al een aanzet tot oplossing was met dezelfde denkpiste.
 
Laatst bewerkt:
Het kan ook zo.

Code:
Sub hsv()
Dim cl As Range
For Each cl In Columns(3).SpecialCells(2, 2)
  If cl.PrefixCharacter = "'" Then cl = "''" & cl.Value
Next cl
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan