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

string vervangen door new line

Status
Niet open voor verdere reacties.

DannyGeysen

Gebruiker
Lid geworden
23 dec 2002
Berichten
57
Kolom A telt honderden rijen data met volgende inhoud:

17071830;48726600;-103/0:17071830;48726650;-101/0:17071840;48726550;-106/0:17071840;48726580;-105/0:

Bij elke string "/0:" zou ik een nieuwe rij willen beginnen op een 2e werkblad.
(Elke rij bevat dus 4 zulke strings.)

Hoe is dit te doen?

Hartelijk dank,
 
DannyGeysen,

Is Tekst naar kolommen misschien een optie?
Zijn de getallen over 4 kolommen verdeeld.
Dan een kolom kopieren en op een ander blad plakken.

Zulke handelingen kun je met de macrorecorderopnemen en naderhand proberen deze code te vereenvoudigen.
 
Bovenstaand voorbeeld bevat de data van de cel A1 (dus 4 strings in 1 cel)
Zo bevalt kolom A honderden rijen.
 
Op basis van jouw gegevens zonder voorbeeldbestandje:

Code:
Sub tst()
Dim j As Long, i As Integer, x As Variant
    j = 1
    For Each cel In Sheets("Blad1").Range("a1:a" & Sheets("Blad1").Cells(Rows.Count, "A").End(xlUp).Row)
        x = Split(cel.Value, "/0:")
        For i = 1 To 4
            Sheets("Blad2").Cells(j, 1).Value = x(i - 1) & "/0:"
            j = j + 1
        Next i
    Next
End Sub
 
Laatst bewerkt:
Bij Tekst naar kolommen hoef je zelf niets te doen.
Alleen aangeven waar hij moet splitsen en dan zet 1 string per kolom.
Doe dit even op een test bestandje, kan er niets mis gaan met het orginele bestandje.
17071830;48726600;-103/0 17071830;48726650;-101/0 17071840;48726550;-106/0 17071840;48726580;-105/0
Zo ziet het er bij mij uit, dus na de /0 komt het volgende getal in een andere kolom.
 
E v R,

Mooi stukje code.
Het rode heb ik er tussen gezet er kwam een fout melding, nu niet meer.
Code:
Sub tst()
Dim j As Long, i As Integer, x As Variant
    j = 1
    For Each cel In Sheets("Blad1").Range("A1:A19")
    [COLOR="red"]If cel.Value = "" Then Exit Sub[/COLOR]
        x = Split(cel.Value, "/0:")
        For i = 1 To 4
            Sheets("Blad2").Cells(j, 1).Value = x(i - 1) & "/0:"
            j = j + 1
        Next i
    Next
End Sub
 
Laatst bewerkt:
Yep :thumb:
Daarom had ik de code nog even aangepast
 
Op basis van jouw gegevens zonder voorbeeldbestandje:

Code:
Sub tst()
Dim j As Long, i As Integer, x As Variant
    j = 1
    For Each cel In Sheets("Blad1").Range("a1:a" & Sheets("Blad1").Cells(Rows.Count, "A").End(xlUp).Row)
        x = Split(cel.Value, "/0:")
        For i = 1 To 4
            Sheets("Blad2").Cells(j, 1).Value = x(i - 1) & "/0:"
            j = j + 1
        Next i
    Next
End Sub

Eric,

Deze is bijna perfect.

Op het einde van elke cel, voegt hij "/0:" toe. Het ware beter als dit er niet meer bij zou staan.

Ik heb gemerkt dat in mijn bestand om de (ongeveer) 500 rijen er 1 rij volgt met slechts 1 string i.p.v. 4 strings. Op zulk een rij stopt de macro dan met een foutmelding op:
Sheets("Blad2").Cells(j, 1).Value = x(i - 1) & "/0:"
 
Laatst bewerkt:
Iets aangepast:
Code:
Sub tst()
Dim j As Long, i As Integer, x As Variant, cel as range
    j = 1
    For Each cel In Sheets("Blad1").Range("a1:a" & Sheets("Blad1").Cells(Rows.Count, "A").End(xlUp).Row)
        x = Split(cel.Value, "/0:")
        For i = 1 To UBound(x)
            Sheets("Blad2").Cells(j, 1).Value = x(i - 1)
            j = j + 1
        Next i
    Next
End Sub
 
Laatst bewerkt:
Iets aangepast:
Code:
Sub tst()
Dim j As Long, i As Integer, x As Variant, cel as range
    j = 1
    For Each cel In Sheets("Blad1").Range("a1:a" & Sheets("Blad1").Cells(Rows.Count, "A").End(xlUp).Row)
        x = Split(cel.Value, "/0:")
        For i = 1 To UBound(x)
            Sheets("Blad2").Cells(j, 1).Value = x(i - 1)
            j = j + 1
        Next i
    Next
End Sub

Helemaal perfect Eric! Hartelijk dank voor deze snelle en perfecte hulp.
Ook dank aan iedereen die mee geholpen heeft.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan