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

Dubbele gegevens in cel

  • Onderwerp starter Onderwerp starter AABE
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

AABE

Gebruiker
Lid geworden
4 mrt 2008
Berichten
104
Hi,

Onderstaande tekst staat in een cel.
Alle regels in de cel zijn gescheiden door chr(10).
Nu wil ik de dubbele regels kunnen verwijderen.

Weet iemand hoe dit te doen middels VBA?

mvg,

Aat

01-07-09: CCD is changed from 08-07-09 to 22-07-09
29-06-09: Test & Turn Up successful on 25-06-09
29-06-09: Ready For Service on 25-06-09
22-06-09: Access delivered on 18-06-09
22-06-09: Access delivered on 18-06-09
22-06-09: Access delivered on 18-06-09
11-06-09: PE delivered on 10-06-09
08-06-09: PE delivered on 07-06-09
25-05-09: CPE delivered on 20-05-09
 
dat zou je met de volgende macro kunnen doen:

Code:
Sub DubbeleRegelsWeg()
Dim Meldingen_in As String
Dim Meldingen_uit As String
Dim Regel1 As String
Dim Regel2 As String
Dim pos As Integer

    'ga er even van uit dat de meldingen in A1 staan en haal die text op
    Range("A1").Select
    Meldingen_in = ActiveCell.Text
    'zoek naar <enter>, zijn er wel meerdere regels?
    pos = InStr(Meldingen_in, Chr(10))
    
    'zolang er meerdere regels zijn vergelijk deze met de volgende
    While pos > 0
        Regel1 = Left(Meldingen_in, pos)    'haal eerste regel op
        Meldingen_in = Right(Meldingen_in, Len(Meldingen_in) - pos) 'welke meldingen blijven er over na de eerste regel
        If Regel1 <> Regel2 Then Meldingen_uit = Meldingen_uit & Regel1 'als de regel niet gelijk is aan de voorgaande toevoegen aan uitvoer
        pos = InStr(Meldingen_in, Chr(10))  'volgende regelpositie bepalen
        Regel2 = Regel1                     'voorgaande "eerste" regel wordt nu de tweede ter vergelijk volgende regel
    Wend
    
    'laatste regel afhandeling
    Regel1 = Meldingen_in
    If Regel1 <> Regel2 Then Meldingen_uit = Meldingen_uit & Regel1
    
    'schrijf resultaat weg in B1
    Range("B1").Select
    ActiveCell = Meldingen_uit
    
End Sub
 
of

Code:
Sub tst()
  sq = Split([A1], Chr(10))
  For j = 0 To UBound(sq)
    sq = Split(Join(Filter(sq, sq(0), False), vbCr) & vbCr & sq(0), vbCr)
  Next
  [A2] = Join(sq, Chr(10))
End Sub
 
of

Code:
Sub tst()
  sq = Split([A1], Chr(10))
  For j = 0 To UBound(sq)
    sq = Split(Join(Filter(sq, sq(0), False), vbCr) & vbCr & sq(0), vbCr)
  Next
  [A2] = Join(sq, Chr(10))
End Sub


die kon ik nog niet.... bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan