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

Inhoud van een cel filteren / omzetten

Status
Niet open voor verdere reacties.

Stone52

Gebruiker
Lid geworden
11 dec 2004
Berichten
320
Graag zou ik wat hulp ontvangen bij het volgende:

Er zijn cellen met verschilllende waarden gevuld (bv: cel1 12345-889, cel2 1234/56, cel3 333.33AA, enz.) Nu ben ik op zoek naar een formule/methode (niet VBA) om de punt / komma / streep / alle niet-numerieke waarden uit de resp. cel te filteren en deze bv te vervangen door een 0 (nul).
Wie helpt mij op weg ?
 
Graag zou ik wat hulp ontvangen bij het volgende:

Er zijn cellen met verschilllende waarden gevuld (bv: cel1 12345-889, cel2 1234/56, cel3 333.33AA, enz.) Nu ben ik op zoek naar een formule/methode (niet VBA) om de punt / komma / streep / alle niet-numerieke waarden uit de resp. cel te filteren en deze bv te vervangen door een 0 (nul).
Wie helpt mij op weg ?

Waarom geen VBA? Dat zou een en ander VEEEEEL simpeler maken.
 
Wat je kan doen is de betreffende cellen selecteren.
Vervolgens klikken op CTRL-H en excel per leesteken laten zoeken en vervangen.

Met vriendelijke groet,


Roncancio
 
Waarom geen VBA? Dat zou een en ander VEEEEEL simpeler maken.

Klopt, maar niet iedereen is vertrouwd (of kan ik beter zeggen GEtrouwd :p ) met VBA. Vaak wil men het zelf kunnen blijven beheren en kan de drempel om VBA te gebruiken te hoog zijn.

Met vriendelijke groet,


Roncancio
 
Wat je kan doen is de betreffende cellen selecteren.
Vervolgens klikken op CTRL-H en excel per leesteken laten zoeken en vervangen.

Met vriendelijke groet,

Roncancio

Je bedoelt dat er leesteken per leesteken (en letters!) moet ingevuld worden wat vervangen wordt? :confused:

Dan wordt de drempel naar VBA toch al wel iets lager denk ik. (Op voorwaarde dat de vraagsteller de code 'krijgt' van ons)

Wigi
 
Je bedoelt dat er leesteken per leesteken (en letters!) moet ingevuld worden wat vervangen wordt? :confused:

Dan wordt de drempel naar VBA toch al wel iets lager denk ik. (Op voorwaarde dat de vraagsteller de code 'krijgt' van ons)

Wigi

Inderdaad, maar de beste oplossing is de oplossing die de vraagsteller wilt hebben. Maw we kunnen we iets maken in VBA maar als de gebruiker er niet mee overweg kan/wil/durf, dan heeft men er weinig aan. Vaak wil men het zelf in beheer nemen/houden.

Met vriendelijke groet,


Roncancio
 
Inderdaad, maar de beste oplossing is de oplossing die de vraagsteller wilt hebben. Maw we kunnen we iets maken in VBA maar als de gebruiker er niet mee overweg kan/wil/durf, dan heeft men er weinig aan. Vaak wil men het zelf in beheer nemen/houden.

Met vriendelijke groet,

Roncancio

OK, dan zullen we een formule proberen uit de mouw te schudden. Weet niet of het lukt en hoe "gebruiksvriendelijk" het zal zijn.

Wigi
 
Laatst bewerkt:
BTW, de ASAP utilities hebben de mogelijkheid om dit automatisch te doen. Zie in het menuutje bij Text > "Advanced character removal / replace..."

Wigi
 
OK, dan zullen we een formule proberen uit de mouw te schudden. Weet niet of het lukt en hoe "gebruiksvriendelijk" het zal zijn.

Wigi

Zie bijlage. Ik moet zeggen: het is aardig gelukt :p, ook al mogen enkel formules gebruikt worden.

De uitkomst is nu een getal geworden. Als je het wilt hebben als tekst, maak dan van cel B1:

=TEKST(deformuleinB1)

Wigi
 

Bijlagen

Laatst bewerkt:
Wigi en Ronancia bedankt voor jullie hulp. De formule-oplossing is een flinke stap in mijn goede richting. Jullie hebben beiden voorkeur voor VBA. Hebben jullie een VBA-voorbeeld voor genoemde situatie ? Alle numerieke en alfa-numerieke tekens (niet punt, komma, slash, back-slash, vraagteken enz.) moeten ongewijzigd blijven.
 
Laatst bewerkt:
Jullie hebben voorkeur voor VBA.

Damn! Je zei in de vraag van geen VBA te gebruiken!

Maar goed.

Hier is een nieuwe functie die je overal kan gebruiken in je bestand.

Code:
Public Function Opgekuist(strTeKuisen As String, Optional Hoofdletters As Boolean = True)
'_____________________________________________________________________________
'
'User defined function voor het verwijderen van bepaalde tekens in een string
'Wim Gielis, '03-11-2006
'www.helpmij.nl/forum
'_____________________________________________________________________________
    
    Dim i As Integer
    Const strWegdoen = "-/.abcdefghijklmnopqrstuvwxyz"
    For i = 1 To Len(strWegdoen)
        strTeKuisen = Application.WorksheetFunction.Substitute(strTeKuisen, Mid(strWegdoen, i, 1), "")
        If Hoofdletters Then strTeKuisen = Application.WorksheetFunction.Substitute(strTeKuisen, _
            UCase(Mid(strWegdoen, i, 1)), "")
    Next i
    Opgekuist = strTeKuisen
End Function

Plak deze code in een nieuwe module (in VBA omgeving, kies Insert > Module).

Het verwijdert de tekens die je zet in "strWegdoen". Als je het tweede argument op ONWAAR zet, worden de hoofdletter ervan niet weggedaan, anders wel (standaard dus ook hoofdletters verwijderd).

Wigi
 
Jullie hebben beiden voorkeur voor VBA.
Het is niet belangrijk wat wij vinden. Het heeft wel soms z'n voordelen maar het belangrijkste is dat jij met de oplossing overweg kan. Als dat dus betekent dat je geen VBA wilt gebruiken dan moeten we dus naar een andere manier kijken.

Met vriendelijke groet,


Roncancio
 
Wigi en Roncancio,

De eerder door Wigi opgegeven macro voldeed niet geheel (de opgegeven chars werden niet vervangen). Daarna zelf doorgegaan met een alternatief. Dit wil ik jullie ook niet onthouden:

'============================
' Vervang tekens in een string
'============================
Sub ConverteerTekens()

Dim AantalTekens As Integer
Dim LastRow As Long
Dim r As Range

AantalTekens = 20
' bepaal max. aantal gebruikte rijen
LastRow = Range("A1000").End(xlUp).Row
' alle hieronder genoemde tekens worden vervangen
' in dit geval door een nul
For Each r In Range("$A$1:$A$" & LastRow)
r.Value = Replace(r, " ", "0")
r.Value = Replace(r, ".", "0")
r.Value = Replace(r, ",", "0")
r.Value = Replace(r, "-", "0")
r.Value = Replace(r, "_", "0")
r.Value = Replace(r, "\", "0")
r.Value = Replace(r, "/", "0")
' neem het aantal opgegeven tekens, van links af, mee
' r.Value = Left$(r, AantalTekens)
Next

End Sub


Nogmaals dank voor het meedenken en voor het inzicht in de amoureuze belevenissen van Roncancio. Tot (heel) snel.
 
Laatst bewerkt:
Wigi en Roncancio,

De eerder door Wigi opgegeven macro voldeed niet geheel (de opgegeven chars werden niet vervangen).

Ik weet niet wat je fout deed met mijn vorige code, want heb het toen vrij uitvoerig getest. Zie ook eens bijlage en vergelijk of je het correct deed. Voor een hele boel cellen, voer gewoon de formule door.

Wigi
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan