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

specifieke tekst uit cellen verwijderen

Status
Niet open voor verdere reacties.

gGerretje

Gebruiker
Lid geworden
12 mrt 2008
Berichten
476
Beste helpers,

Ik heb een bestand met in kolom D cellen met informatie (meer specifiek van mijn bankafschriften).
Daarin staat dan vaak tekst zoals Incasso: Ziggo of Kenmerk: 459423
Daarvoor en daarachter staat informatie die behouden moet blijven.

De bedoelde tekst (in het voorbeeld: Blabla) verwijderen lukt al (ik heb een macro gemaakt en onder een opdrachtknop gezet.
Ik zou nu graag die specifieke tekst (Blabla: 123) tot aan de volgende spatie willen verwijderen uit alle cellen van kolom D.
Hoe kan ik dat voor elkaar krijgen?

De bedoeling is natuurlijk dat ik straks een willekeurige andere tekst via een Inputbox kan inbrengen, maar daar kom ik dan wel uit.

Alvast bedankt voor jullie hulp.

Groeten,
Ger
 

Bijlagen

Laatst bewerkt:
als je in de cel ernaast aangeeft wat je feitelijk wil bereiken zou dat al een pak eenvoudiger zijn.
 
Heb je niet een paar echte voorbeelden uit je bestand? Even gevoelige info eruit
 
Hallo JEC

Ja dat kan. Ik dacht dat het duidelijk genoeg was.

Nu is het kolom K.
Die is veel te lang en de tekst loopt door. Ik wil geen tekstterugloop met hogere rijen.
Dus ik wel er bijvoorbeeld kenmerk: 12345spatie uithalen.
Of Incasso: 9786spatie eruit halen. Maar dan uit alle cellen waarin dat voorkomt. De ene keer incassonr: 12345, de andere keer incassonr: 56789.

Maar hoe aardig ik ook iedereen vind die wil helpen, steek er geen onnodige tijd in, alleen als jullie het leuk vinden om uit te zoeken.
Want door in kolom L gewoon een spatie te zetten is het (heel banaal) ook opgelost natuurlijk.
Maar ja ik kwam eerst op dit idee :-(

Bedankt in ieder geval

Groeten,
Ger
 

Bijlagen

Een alternatief is misschien nog de cel rechts uit te lijnen.
 
Run dit eens

Code:
Sub jec()
 Dim r
 Set r = Range("K4", Range("K" & Rows.Count).End(xlUp))
 With CreateObject("vbscript.regexp")
   .Global = True
   .Pattern = "([A-Za-z]+:\s)(\d{4,}\s)"
   r.Value = Application.Transpose(Split(.Replace(Join(Application.Transpose(r), "^^"), ""), "^^"))
 End With
End Sub
 
Laatst bewerkt:
Hallo JEC,



Ik heb de code in Blad1 gezet en macro gerund.
Volgens mij doet dit niets.
 
Hallo Emields,

Dat is een beetje kort door de bocht. In principe wel natuurlijk.
Maar met deze oplossing kort je de cellen gewoon in tot maximaal 120 tekens.
Het was juist de bedoeling dat ik bepaalde tekenreeksen eruit kon halen. Bijvoorbeeld IBAN: xxxx is niet interessant want dat is het nummer van de tegenrekening en dat staat al in een andere kolom. Ik zou dus alleen die tekenreeks uit cellen willen halen. Eventueel ook in de cellen met kortere inhoud (al is dat niet noodzakelijk).

Dank voor je bijdrage,

Groeten,
Ger
 
Laatst bewerkt:
Bijvoorbeeld IBAN: xxxx is niet interessant
Wat is nog meer niet interessant in de kolom K "mededelingen"?
Naam?
Omschrijving?
Valutadatum?
Pasvolgnr?
Transactie?
Factuur?
Kenmerk?
Machtiging?
Incassant ID?
Doorlopende incasso?

Dus welke trefwoorden?
 
Laatst bewerkt:
Want door in kolom L gewoon een spatie te zetten is het (heel banaal) ook opgelost natuurlijk.
Door rechts uit te lijnen zie je de tekst uit kolom K ook niet in kolom L
Dan zal dit ook wel te kort door de bocht zijn, alhoewel je hetzelfde effect hebt als wanneer je een spatie in kolom L zet.
 
Nee, rechts uitlijnen vond ik niet kort door de bocht. Dat is uiteraard een goede oplossing, net als die spatie in L.
Daarmee blijft immers alle info behouden en loopt de tekst toch niet door in andere kolommen.

Dat vervangen van onnodige informatie was een eerste idee van mij. Ik was daar al handmatig begonnen maar dat werd echt te veel werk.
Vandaar dat ik dacht dat het waarschijnlijk ook gecodeerd kon worden.

@ Alphamax:
Het maakt niet uit welke info we nu als onbelangrijk aanmerken..
Maar als iemand mij kan vertellen hoe ik kenmerk: xxxx eruit haal tot de eerstvolgende spatie kan ik zelf wel verder met een inputbox om andere informatie eruit te halen.
En anders ga ik natuurlijk rechts uitlijnen of kolom L vullen.

Bedankt voor jullie meedenken.

Groeten,
Ger
 
Basisprincipe (lang niet idot-proof)
Code:
Public Sub Onbelangrijk()

    sTekst = ActiveCell.Value
    lTekst = Len(sTekst)

    sSleutelMetSpatie = InputBox("Onbelangrijk")
    lSleutelMetSpatie = Len(sSleutelMetSpatie)
    lSleutelMetSpatiePos = InStr(1, sTekst, sSleutelMetSpatie)
    lSpatiePos = InStr(lSleutelMetSpatiePos + lSleutelMetSpatie + 1, sTekst, " ")

    sTekst = Mid(sTekst, 1, lSleutelMetSpatiePos - 1) & Mid(sTekst, lSpatiePos + 1, lTekst - lSpatiePos - 2)
    MsgBox sTekst

End Sub
 
Laatst bewerkt:
Hallo Alphamax,

Ik denk dat ik de code begrijp.
En het werkt ook, zij het dat ik voor de msgBox nog
Code:
ActiveCell.Value = sTekst
heb moeten toevoegen om de cel echt te wijzigen.

Tot zover dus alles OK.

Nu moet deze actie dus nog voor alle cellen in die kolom worden uitgevoerd.
Daar ga ik alvast even mee aan de slag.

Bedankt voor je (deel)oplossing.

Groeten,
Ger
 
Ik heb de code in Blad1 gezet en macro gerund.
Volgens mij doet dit niets.

Hij doet wel degelijk iets. Precies wat je vraagt eigenlijk.
Je ziet alleen niet veel veranderen in je voorbeeldbeatand, dat klopt.
 
@ Emields
Deze code werkt. Maar dit kon ik natuurlijk met Zoeken/Vervangen ook al.
De cijfers zelf (die achter dubbele punt en spatie) blijven gewoon staan.
Die zouden er mee uit moeten.

Met de code van Alphamax (#14) gebeurde dat wel al. Ik denk dus dat ik de codes moet gaan proberen te combineren.
Ik denk dat ik er zo wel uit kom.

@ JEC Ik ga het uitproberen op het volledige bestand

Dank voor jullie hulp,

Groeten,
Ger
 
Nieuwe code voor het bestand van eMields uit bericht#16
Code:
Private Sub CommandButton1_Click()
    For Each oMedeling In Range("C389").CurrentRegion.Columns(9).Rows
        sMedeling = oMedeling.Value
        With Range("E364").CurrentRegion
            For Each sSleutel In .Offset(1, 0).Resize(.Rows.Count - 1, 1).Rows.Value
                lSleutelPositie = InStr(1, sMedeling, sSleutel)
                If lSleutelPositie <> 0 Then
                    lSpatiePositie = InStr(lSleutelPositie + Len(sSleutel) + 1, sMedeling, " ")
                    sReplace = Mid(sMedeling, lSleutelPositie, lSpatiePositie - lSleutelPositie)
                    sMedeling = Replace(sMedeling, sReplace, "")
                End If
            Next
        End With
        oMedeling.Value = Application.Trim(sMedeling)
    Next
End Sub
 
Dank je.
Ik denk dat ik alles wel kan verwerken tot een mooi geheel.

Groeten,
Ger
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan