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

tekst met scheidingstekens naar cel

Status
Niet open voor verdere reacties.

rthoonsen

Gebruiker
Lid geworden
4 jun 2021
Berichten
24
Ik probeer vanuit een stuk tekst waarin scheidingstekens zijn verwerkt de code er uit te halen naar kolommen echter lukt me dat niet.

voorbeeld: "tekst met scheidings tekens"
D-02509 - voorbeeld systeem programma test;#835;#D-03022 - voorbeeld systeem programma test;#615;#D-03032 - voorbeeld systeem programma test;#625;#D-03042 - voorbeeld systeem programma test;#635;#D-03929 - voorbeeld systeem programma test;#1681;#D-03933 - voorbeeld systeem programma test;#1685;#D-03948 - voorbeeld systeem programma test;#1720;#D-03948 - voorbeeld systeem programma test;#1719;#D-03948 - voorbeeld systeem programma test;#1721;#D-03948 - voorbeeld systeem programma test;#1722;#D-03951 - voorbeeld systeem programma test;#1738;#D-03951 - voorbeeld systeem programma test;#1739;#D-03951 - voorbeeld systeem programma test;#1740;#D-03951 - voorbeeld systeem programma test;#1741

en vanuit die tekst wil ik eigen een cel waarin het onderstaande terecht komt.
D-02509,D-03022,D-03032,D-03042,D-03929,D-03948,D-03951
 
Staat dat in 1 cel of in meerdere cellen?
Onder elkaar of naast elkaar?
Plaats een voorbeeld documentje.
 
Met het object VBscript.Regexp in UDF vorm is dit heel goed te doen. Misschien dat iemand hier de voorzet inkopt, ik heb geen pc bij de hand
 
Hierbij een voorbeeld komt in een cel voor de gehele tekst.
 

Bijlagen

  • voorbeeld.xlsx
    9,9 KB · Weergaven: 23
Get opsplitsen met de module heb ik geprobeerd dat lukt alleen blijf ik dan wel met dubbelingen zitten.

Function OpSplitsen(Target As Range) As String
Dim Nr() As String

x = Split(Target, "D-")
For i = 0 To UBound(x)
ReDim Preserve Nr(i)
Nr(i) = "D-" & Left(x(i), 5)
Next i
OpSplitsen = Mid(Join(Nr, ","), 4)
End Function

In cel B2 =OpSplitsen(A2)
 
Daarom had ik 'm weer weg gehaald.
Je kan een Dictionary gebruiken in plaats van een Array.
Dictionary.Keys is unique en is een Array.
Heb ik zelf nu helaas geen tijd voor.
 
Waarom hoeft D-03933 niet meegenomen worden? Zonder Dictionary kan ook wel.

Code:
Function VenA(r As Range)
  x = Split(Replace(r, " ", "#"), "#")
  For j = 0 To UBound(x)
    If Left(x(j), 2) = "D-" And InStr(c00, x(j)) = 0 Then c00 = c00 & "," & x(j)
  Next j
  If Len(c00) Then VenA = Mid(c00, 2)
End Function
 
Laatst bewerkt:
Hier nog een formule voor Excel 365:
Code:
=TEKST.COMBINEREN(",";WAAR;ALS.FOUT(UNIEK(DEEL(A2;KLEINSTE(ALS(DEEL(A2;REEKS(1000);2)="D-";REEKS(1000));REEKS(1000));7));""))
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan