Hoe rijen automatisch te nummeren als de aangrenzende cel niet leeg is in Excel?

In Excel is het gebruik van de vulgreep om handmatig een reeks getallen te maken een gebruikelijke manier om serienummers of indexen voor lijsten te genereren. Er zijn echter vaak situaties waarin je alleen rijen wilt nummeren als een specifieke aangrenzende cel gegevens bevat. Bijvoorbeeld, je wilt misschien automatisch rijnummers genereren in een lijst, maar nummering overslaan waar de aangrenzende gegevenscellen leeg zijn. Bovendien verwacht je mogelijk dat deze nummers direct worden bijgewerkt wanneer gegevens worden ingevoerd of verwijderd — zodat er altijd een actuele volgorde wordt weergegeven zonder handmatige tussenkomst.
Rijen automatisch nummeren met formule als de aangrenzende cel niet leeg is
Rijen automatisch nummeren met VBA-code als de aangrenzende cel niet leeg is
Rijen automatisch nummeren met formule als de aangrenzende cel niet leeg is
Een efficiënte manier om dynamische rijnummering op basis van aangrenzende celwaarden te bereiken, is door een Excel-formule te gebruiken. Met deze aanpak worden rijnummers alleen weergegeven wanneer de aangrenzende cel een waarde bevat. Wanneer je gegevens toevoegt of verwijdert in deze cellen, wordt de nummering automatisch bijgewerkt om overeen te komen. Hier is een praktische methode die je kunt gebruiken:
1. Selecteer de cel waar je wilt dat de nummering begint (bijvoorbeeld A2 als je gegevens beginnen in B2). Voer de volgende formule in:
=IF(B2<>"",COUNTA($B$2:B2),"")
2. Sleep vervolgens de vulgreep naar beneden langs je gegevens om deze formule toe te passen op andere rijen. De nummering wordt automatisch aangepast en toont alleen nummers voor rijen waar gegevens aanwezig zijn in kolom B.
Als je problemen ervaart waarbij de nummers niet zoals verwacht worden bijgewerkt, controleer dan of de formule naar alle relevante rijen is gekopieerd en dat er geen samengevoegde cellen of gegevensvalidaties zijn die je bereik verstoren. Onthoud dat formules afhankelijk zijn van nauwkeurige referenties en kunnen worden onderbroken door structurele wijzigingen in het werkblad.
Rijen automatisch nummeren met VBA-code als de aangrenzende cel niet leeg is
Voor meer gevorderde gebruikers, of in gevallen waarin je liever geen formules door je hele werkblad toepast — of wanneer je nummering wilt updaten zelfs bij het plakken van gegevens, blokken verwijderen of frequent wijzigen — biedt een VBA-macro een interessant alternatief. Met VBA kun je de rijnummers in één kolom automatisch bijwerken wanneer de aangrenzende cel wordt bewerkt, zonder dat formules nodig zijn. Dit is ideaal voor invoerformulieren, importlogboeken of takenlijsten met frequente lay-outwijzigingen.
1. Druk op Alt + F11 om het Visual Basic for Applications-editorvenster te openen. Zoek in de Projectverkenner je werkmap, dubbelklik dan op het relevante werkblad (bijvoorbeeld 'Sheet1') onder 'Microsoft Excel Objects'.
2. Plak de volgende code in het coderaam dat verschijnt. Dit voorbeeld gaat ervan uit dat je rijen in kolom A wilt nummeren op basis van of kolom B niet leeg is; je kunt de referenties aanpassen voor jouw specifieke bereik indien nodig:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chk As Range
Set chk = Intersect(Target, Me.Columns("B"))
If chk Is Nothing Then Exit Sub
Application.EnableEvents = False
Call RenumberNonBlank(Me, "B", "A", 2)
Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
keyCol As String, _
numCol As String, _
firstDataRow As Long)
Dim lastRow As Long
Dim r As Long
Dim seq As Long
lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
seq = 1
For r = firstDataRow To lastRow
With ws
If Trim(.Cells(r, keyCol).Value) <> "" Then
.Cells(r, numCol).Value = seq
seq = seq + 1
Else
.Cells(r, numCol).ClearContents
End If
End With
Next r
End Sub
3. Sla op en sluit de VBA-editor. Nu zal, telkens wanneer je inhoud toevoegt, bewerkt of verwijdert in kolom B, kolom A onmiddellijk opnieuw worden genummerd, wat de aanwezigheid (of afwezigheid) van gegevens weerspiegelt. De volgorde zal omhoog of omlaag schuiven naarmate je items in kolom B toevoegt of verwijdert.
Opmerkingen en voorzorgsmaatregelen: Deze macro moet specifiek in het codevenster van het gewenste werkblad worden geplaatst (niet in een module of ThisWorkbook) om te reageren op celbewerkingen. Zorg er ook voor dat macros zijn ingeschakeld in je Excel-instellingen opdat de code werkt. Als je 'gegevensbereik' verschuift naar kolommen anders dan A en B, pas dan de Set chk = Intersect(Target, Me.Columns("B"))
en Call RenumberNonBlank(Me, "B", "A", 2)
referenties dienovereenkomstig aan.
Problemen oplossen: Als de nummering niet wordt bijgewerkt, controleer dan of je het juiste werkblad bewerkt en dat de code in het juiste werkbladcodevenster is geplaatst. Zorg er ook voor dat je de werkmap hebt opgeslagen als een macro-ondersteund bestand (.xlsm). Bij onverwachte fouten, controleer dan of je de structuur van je werkblad niet hebt gewijzigd, zoals samengevoegde cellen of gegevens in koptekstrijen.
Beste productiviteitstools voor Office
Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!
Alle Kutools-invoegtoepassingen. Eén installatieprogramma
Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.





- Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
- Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
- 30 dagen volledige proef — geen registratie, geen creditcard nodig
- Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen