 |
 |
 |
 |
Tips Excel |
|
go to : Index |
|
|
|
|
Tip 255 |
|
|
Excel Tip |
|
Samenvoegen Bereik |
Dat je zelf een functie kunt maken in Excel, had ik jullie reeds uitgelegd in Les 17 van de cursus Excel Automatiseren.
In deze tip toon ik jullie hoe je een functie schrijft, die de inhoud van een Bereik samenvoegt.
|
Wens je het bestand uit deze tip te ontvangen, klik hier. |
Dat je de inhoud van cellen kunt samenvoegen met de functie TEKST.SAMENVOEGEN zal iedereen wel weten. Dat het een hele opgave is deze formule in te typen, vooral dan wanneer er een pak cellen moeten worden samengevoegd, zal iedereen ook wel weten.
Dus is het misschien makkelijker wanneer we hiervoor een functie aanmaken.
Deze functie moet beschikken over twee argumenten, één een bereik, twee een
seperator.
Of het bereik nu verticaal is (1), of horizontaal (2), dat mag geen verschil maken, een bereik is een bereik.
De separator zal de inhoud van de verschillende cellen separeren, met het karakter dat jij ingeeft. |
 |
|
Om een functie te maken moeten we de VBA-editor openen. |
Open de VBA-editor en maak een nieuwe module.
Hiervoor klik je "Invoegen" en kies je "Module".
Typ onderstaande VBA-code in de VBA-editor |
 |
|
Ik heb deze hier nog even uitgetypt, maar in elk geval, diegenen die het bestand hebben gevraagd, hebben meteen ook de code. |
Function samber(myrange As Range, mySep As String) As String
Dim CurrentRange As String
Dim r As String
CurrentRange = ""
For Each cell In myrange
If cell <> "" Then
r = cell & mySep
CurrentRange = CurrentRange & r
End If
Next cell
CurrentRange = Left(CurrentRange, Len(CurrentRange) - Len(mySep))
samber = CurrentRange
End Function |
|
Ik leg de VBA-code even uit. |
Function samber |
Hier geef ik de functie een naam. Welke naam dat maakt niet uit, ik kies voor samber welke een afkorting is voor "samenvoegen bereik", maar geef jij deze liever de naam van je schoonmoeder, je doet maar. |
|
(myrange As Range, mySep As String |
de functie moet twee argumenten (een bereik, een separator). |
|
Vervolgens declareer ik twee variabelen. |
Dim CurrentRange As String
Dim r As String |
|
Vervolgens bepalen we dat het bereik leeg is |
CurrentRange = "" |
|
For Each cell In myrange |
Voor elke cel in het bereik myrange |
|
Doe het volgende |
If cell <> "" Then
r = cell & mySep
CurrentRange = CurrentRange & r
End If |
Dus als de cel niet leeg is dan wordt de variabele r de iinhoud van de cel plus de seperator |
|
Wanneer er aan de voorwaarde is voldaan, doe het volgende |
CurrentRange = Left(CurrentRange, Len(CurrentRange) - Len(mySep))
samber = CurrentRange |
De code CurrentRange = Left(CurrentRange, Len(CurrentRange) - Len(mySep)) let erop dat de seperator zich niet herhaald na de laatste celinhoud. |
|
We gaan de zelfgemaakte functie even testen.
Typ het is gelijk aan teken, en typ sam. Zoals je ziet heeft Excel de functie al gevonden. |
 |
|
Door de sneltoetscombinatie Ctrl + Shift + A te klikken zie je de argumenten voor deze functie.
Selecteer het bereik, typ punt komma, en typ het tweede argument, wat meestal een spatie zal zijn.
Klik Enter.
|
 |
|
Alle cellen uit het bereik zijn samengevoegd. |
 |
|
Typ je streepjes als seperator, dan worden deze ingevoegd tussen de woorden, maar niet na het laatste woord.
Dat is wat deze regel CurrentRange = Left(CurrentRange, Len(CurrentRange) - Len(mySep)) doet. |
 |
|
GratisCursus.be denkt aan jullie. |
>
Index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|