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

Opgelost regelomloop in cel.

Dit topic is als opgelost gemarkeerd

snb

Verenigingslid
Lid geworden
12 jun 2008
Berichten
20.577
Hoe vervang ik met VBA in een cel met een tekst waarin 3 keer een # voorkomt iedere # door een harde return zodat na vervanging van de # er vier regels in de cel ontstaan ?
Wat hier niet werkt:

cells(1),replace "#", vblf
cells(1)replace "#", vbcr
cells(1).replace "#", vbcrlf
cells(1)replace "#", chr(10)
cells(1).replace "#", chr(13)
cells(1).replace "#", chr(10) & chr(13)

Dank bij voorbaat.
 
Application.substitute

Alhoewel de eerste van je hier gewoon goed werkt.
 
Laatst bewerkt:
Ik heb er zelf totaal geen verstand van, dus heb ik het even aan Claude gevraagd. Dit is eruit gekomen en het werkt ook nog. Eventuele voorloopspaties worden eveneens verwijderd.
Code:
Sub VervangHekjesDoorRegeleinde()
    Dim c As Range
    Dim onderdelen() As String
    Dim i As Long
    Dim resultaat As String
    
    Set c = ActiveCell  ' of bijvoorbeeld: Cells(1, 1)
    
    ' Splits de tekst op het #-teken
    onderdelen = Split(c.Value, "#")
    
    ' Verwijder voorloopspaties van elk deel en voeg samen met regeleinde
    resultaat = ""
    For i = LBound(onderdelen) To UBound(onderdelen)
        If i > LBound(onderdelen) Then
            resultaat = resultaat & Chr(10)
        End If
        resultaat = resultaat & LTrim(onderdelen(i))
    Next i
    
    c.Value = resultaat
    c.WrapText = True
    c.EntireRow.AutoFit
End Sub
 
Werkt hier ook gewoon in 2010 en 365
 
Werkt hier zonder probleem.

In je voorbeelden in #1 staat in regel 1 een komma waar een punt moet staan.
Regel 2 en 4 missen die helemaal.
Ga je daar wellicht ergens mis?
 
Bij zo'n doorgewinterde? 😉
 
Ja, daarom vond ik het al vreemd.
Maar je weet maar nooit ;)
 
Maar hij zal de rijhoogte toch wel aangepast hebben?
 
Dank voor alle interessante reakties.

Maar nu: hoe doe je dat handmatig in Excel: Tabblad Home, Optie Find & Select, Optie Replace. Hoe herkent Excel de vbLF uit de handmatige invoer ? Alt, 10 noch alt, 13 werkt hier.

En ook: hoe geef je in een CSV-bestand aan dat in een 'cel' regelomloop moet plaatsvinden, zodat na import er bijv. 3 regels in 1 cel terechtkomen ? De vbLF en vbCr worden nl. beschouwd als recordscheiding.
 
Maar nu: hoe doe je dat handmatig in Excel: Tabblad Home, Optie Find & Select, Optie Replace. Hoe herkent Excel de vbLF uit de handmatige invoer ? Alt, 10 noch alt, 13 werkt hier.
Replace. Hou de Control toets ingedrukt en druk dan op Enter.
 
@snb
Heb je de handdoek in de ring gegooid, of ben je nog steeds aan het broeden op dat VBA-eitje?
 
Ik zit nog op een handdoek voor het CSV-bestand te wachten.
De suggestie van EdM werkt hier niet stabiel: er treden allerlei onverwachte en ongewenste verschijnselen op.
 
Misschien als je een voorbeeld CSV bestandje plaatst.
Ik neem aan dat je import via Excel bedoelt?
In VBA zou dat voor jou toch geen enkel probleem moeten zijn.
 
Hoe geef je in een CSV-bestand aan dat in een 'cel' regelomloop moet plaatsvinden, zodat na import er bijv. 3 regels in 1 cel terechtkomen ? De vbLF en vbCr worden nl. beschouwd als recordscheiding.
 
Dat kan zo:
Code:
"AA
BB
CC";"DD
EE
FF"
Importeer dan het CSV bestand niet maar dubbelklik erop om deze door Excel te laten openen.
Resultaat:
1781600792388.webp
 
@edmoor
dat werkt inderdaad; zowel via het klembord als met de methode Sheets.add.

hartelijk dank.
 
Dan kan je de handdoek weer gebruiken waar 'ie voor bedoeld is ;)
 
Terug
Bovenaan Onderaan