Soms kan het nodig zijn om teksten (String) te manipuleren. Zo is het misschien nodig om twee of meerdere teksten samen te voegen. Of misschien ook andersom… een tekst splitsen. Hiervoor is het misschien nodig gebruik te maken van formules, of van VBA.
Alvorens deze twee methodes te bespreken, zou ik graag eerst de aandacht vestigen op iets anders, wat niet iedereen kent, en wat toch zeer handig en makkelijk is. Deze methode (als ze bruikbaar is) kan u verlossen van een hoop moeilijke formules, of VBA-programmeerwerk.
Je hebt een kolom met een hoop namen in. Er is één naam per cel… maar helaas staat de voornaam en de achternaam in één en dezelfde cel, en dit zou niet mogen.
Tot zover het deel zonder formules of VBA.
Om tekst samen te voegen hebben we de beschikking over de functie:
=TEKST.SAMENVOEGEN(A1;A2;A3)
Deze functie kan je echter beter vergeten, vermits we gewoon het & teken kunnen gebruiken, wat identiek hetzelfde resultaat geeft, maar korter is, en makkelijker te onthouden. Bovendien wordt dit teken ook veelvuldig toegepast in VBA, waardoor je er ook op deze manier vertrouwd mee wordt.
=A1&A2&A3
=A1&” “&A2&” “&A3 Is vrijwel dezelfde functie, maar nu staan er spaties tussen de woorden.
Voor andere functies (zowel in Formules als in VBA) is het handiger gebruik te maken van een Excel-bestand.
De meeste formules in dit bestand maken slechts gebruik van één functie. De meeste werkblad-functies hebben wel een broertje in VBA. In sommige gevallen blijkt het echter makkelijker te zijn uw doel te bereiken via VBA dan via een werkbladfunctie. (Deze functies hebben een oranje celkleur gekregen). Eén functie blijkt zelfs zeer moeilijk te maken zonder VBA. Omdat deze functie ook vrijwel geen enkele praktische toepassing kent, heb ik ze ook niet omgevormd naar een werkbladfunctie (De cel staat in het rood).
Dan is er ook nog een formule die zowel in een werkblad als in VBA gebruik moet maken van meerdere functies. Hier staat zowel de celkleur als de button in het oranje.
Het bestand kan je hier bekijken.
Tot slot nog een macro waar gebruik wordt gemaakt van teksmanipulatie:
Stel, je hebt een gebied waar tekst en nummers door elkaar staan.
b.v.
Cel A1 = 6 Exemplaren
Cel A2 = 7 Stuks
Cel A3 = Vandaag: 8 stukken
Nu moet je bewerkingen uitvoegen met de getallen in deze cellen. Maar deze getallen worden niet meer als getal herkend. Volgende macro filtert alle getallen uit een geselecteerd gebied:
Sub
Nummers()
Dim
sText As String
Dim
r As Range
Dim
i As Integer
Dim
nr As Integer
For
Each r In Selection
sText = r.Value
For i = 1 To Len(sText)
If IsNumeric(Mid(sText, i, 1)) Then
nr = nr & Mid(sText, i, 1)
End If
Next
r.Value = nr
nr = 0
Next
End Sub
Een bewijs dat het altijd nuttig kan zijn om tekst te manipuleren ;-)