Excel-macro's zijn misschien niet zo uitgebreid als andere automatiseringstools, maar de validiteit en efficiëntie van Excel VBA kunnen niet worden ondermijnd. Als je in Excel en andere Microsoft Office-tools zoals Word en Access werkt, kun je niet fout gaan met VBA en zijn mogelijkheden.
MS Excel is een krachtige tool die zijn gebruikers een heleboel opties biedt. Van het opslaan van gegevens tot het maken van geautomatiseerde dashboards, u kunt het allemaal doen in Excel en de bijbehorende spreadsheets.
Als u VBA wilt gebruiken om uw sorteertaken in Excel te automatiseren, probeer dan deze efficiënte, eenvoudig toe te passen macro's.
Een dummy-gegevensset downloaden
Om te beginnen kunt u een dummy-gegevensset downloaden om aan uw Excel-macrovaardigheden te werken.
Wees gerust, als je deze macro's eenmaal onder de knie hebt en beter begrijpt hoe dingen werken, kun je de code aanpassen aan je eigen spreadsheets voor werk of school.
Je kunt de dataset die in dit artikel wordt gebruikt downloaden als je wilt volgen.
Downloaden: Excel-gegevensset
1. Eén kolom sorteren met Excel-macro's
Gebruik deze eenvoudige code om een gegevenskolom in een Excel-spreadsheet te sorteren. Als u de dummy-gegevensset hebt gedownload, kunt u proberen kolom E (Verkochte eenheden) te sorteren.
Open een nieuw Excel-bestand en sla het op met een Excel-werkmap met macro's (.xlsm) soort werkmap. Dit bestand slaat de macro op om uw gegevens uit een ander bestand te sorteren.
Verwant: Beste online cursussen om geavanceerde Excel onder de knie te krijgen
U beheert uw bestand (en) vanuit het macrobestand, dat afzonderlijk met uw werkmappen communiceert.
Voer de volgende code in:
Subsorteer met kopteksten()
Werkmappen ("Financiële Voorbeeld.xlsx"). Bladen (1). Activeren
Range("A1:P701").sort Key1:=Bereik("e1"), Order1:=xlAscending, Header:=xlJa
Einde sub
Waar:
- Sleutel1: Definieer de kolom(men) die u wilt sorteren
- Bestelling1: Bestelwijze (oplopend/aflopend)
- kop: Als uw inhoud kopteksten heeft, blijft deze optie als xlJa. Of selecteer xlNee.
Het bereik bestaat uit de begincel en het eindceladres, zodat alles wordt vastgelegd voor sorteerdoeleinden. Het resultaat is dat uw gehele dataset wordt gesorteerd op basis van de gegevens in kolom E.
2. Dynamische gegevens in een enkele kolom sorteren
Er kunnen gevallen zijn waarin uw startpunt is gedefinieerd, maar uw eindpunt is dynamisch. In een dergelijk geval kunt u uw code dynamisch maken, zodat deze automatisch het einde van het bereik oppikt.
Gebruik de onderstaande code om de wijziging in gegevens op te vangen:
Subsorteer met kopteksten()
Werkmappen ("Financiële Voorbeeld.xlsx"). Bladen (1). Activeren
Range("A1", Range("A1").End (xlDown)).sort Key1:=Bereik("e2"), Order1:=xlAscending, Header:=xlJa
Einde sub
Waar:
- Einde (xlOmlaag): Deze functie kiest automatisch de laatst ingevulde cel
Opmerking: als de formule een lege cel in een kolom aantreft, wordt de voorgaande cel als het einde van het bereik beschouwd.
Verwant: Aangepaste sneltoetsen maken in Microsoft Excel
3. Meerdere kolommen samen sorteren
Er kunnen zich situaties voordoen waarin u gegevens in meerdere kolommen in één keer wilt sorteren. Om dit te doen, kunt u de volgende code gebruiken om uw doel te bereiken:
Sub SortMultipleColumns()
Met werkbladen ("Blad1")
Met .Cellen (1, "A").Huidige regio
.Cells.sort Key1:=.Bereik ("B1"), Order1:=xlOplopend, _
Key2:=.Bereik ("E1"), Order2:=xlOplopend, _
Oriëntatie:=xlTopToBottom, Header:=xlJa
Eindigt met
Eindigt met
Einde sub
4. Kolommen over meerdere bladen sorteren
Als u met meerdere bladen te maken heeft, wilt u misschien uw gegevens gereed maken om in een dashboard te worden geplaatst. Een van de belangrijkste aspecten van gegevensvoorbereiding is het sorteren ervan en het ordenen van de gegevens in een bepaald formaat om aan uw belanghebbenden of klanten te presenteren.
Een optie is om handmatig door elk blad te bladeren, de vereiste kolommen te sorteren en vervolgens door te gaan naar de volgende stap. Als alternatief, waarom zou u VBA het niet voor u laten doen?
De bedoeling van de onderstaande code is om door elk beschikbaar blad in de werkmap te bladeren en op basis van de opgegeven kolommen de beschikbare gegevens te sorteren.
Verwant: Microsoft Excel-zoekfuncties om efficiënter in spreadsheets te zoeken
Zo kunt u kolommen over meerdere bladen sorteren:
Sub SortWS()
Dim ws als werkblad
'Activeer het beoogde werkblad'
Werkmappen ("Financiële Sample.xlsx").Activeren
'Blader automatisch door elk afzonderlijk werkblad met for-lus'
Voor elke ws in ActiveWorkbook. Lakens
'activeer elk afzonderlijk werkblad'
ww. Activeren
'Definieer het bereik en sorteer vervolgens de kolom op basis van uw vereisten. In dit geval wordt slechts één kolom gesorteerd.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Bereik("E1"), Order1:=xlDescending, Header:=xlJa
'Commando gebruikt om naar het volgende werkblad te gaan, nadat het vorige werkblad is gesorteerd
volgende ws
Einde sub
Alle informatie die begint met enkele aanhalingstekens zijn VBA-opmerkingen. Deze worden niet uitgevoerd tijdens de uitvoeringsfase. Elke VBA-opmerking die u toevoegt, is echter een zinvolle toevoeging aan de code, omdat u de essentie, functionaliteit en andere relevante delen binnen de codesecties kunt definiëren.
5. Gesorteerde gegevens van het ene blad naar het andere kopiëren
Stelt u zich een situatie voor waarin u de gegevens wilt sorteren en de hele gegevensset (of delen daarvan) naar een nieuw toegevoegd blad wilt kopiëren. In dergelijke gevallen kunt u de onderstaande code gebruiken om de betreffende taak uit te voeren:
Sub SortWS()
Dim ws als werkblad
'Activeer het beoogde werkblad'
Werkmappen ("Financiële Sample.xlsx").Activeren
'Blader automatisch door elk afzonderlijk werkblad met for-lus'
Voor elke ws in ActiveWorkbook. Lakens
'activeer elk afzonderlijk werkblad'
ww. Activeren
'Definieer het bereik en sorteer vervolgens de kolom op basis van uw vereisten.
'In dit geval wordt er maar één kolom gesorteerd.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Bereik("E1"), Order1:=xlDescending, Header:=xlJa
'Commando gebruikt om naar het volgende werkblad te gaan, nadat het vorige werkblad is gesorteerd
volgende ws
'Maak een nieuw werkblad in de werkmap om de nieuwe gegevens op te slaan'
Actief Werkboek. Lakens. Toevoegen. Naam = "Resultaten"
'Kopieer en plak de gesorteerde gegevens in het nieuw toegevoegde blad'
Spreadsheets("Blad1").Bereik("A1:p701").Kopieerbestemming:=Sheets("Resultaten").Bereik("a1")
Einde sub
De bovenstaande code sorteert de waarden in kolom E, voeg een nieuw blad toe Resultaten in de bestaande werkmap en plak de gesorteerde resultaten in cel A1.
Sorteermacro's maken in Excel
Excel VBA is een handige taal die u veel tijd en moeite kan besparen. Door VBA-macro's te gebruiken, kunt u uitgebreide dashboards maken, eenvoudig gegevens met een paar klikken sorteren en gemakkelijk verschillende functies uitvoeren.
Gelukkig houdt de functionaliteit van Excel niet op bij macro's. Bekijk enkele tips en trucs om een efficiëntere Excel-gebruiker te worden.
Of je nu een meester bent in Excel of net begint, hier zijn de top negen websites en blogs die je kunt gebruiken om wat tips en trucs te leren.
Lees volgende
- Programmeren
- Microsoft Excel
- Macro's

Gaurav Siyal heeft twee jaar schrijfervaring en schreef voor een reeks digitale marketingbedrijven en documenten over de levenscyclus van software.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren