gebruik maken van with ... end with maakt lezen en schrijven van de macro een stuk eenvoudiger.
3 puntjes van aandacht,
- in de sorteerregel stond er als kolom voor sorteren Range("P2"), voor mij lijkt dat gevaarlijk en had ik eerder nog een puntje voor gezet als .range("P2"), soms belangrijk als je toevalling niet op dat werkblad staat, VBA is logisch in overtreffende trap.
- als je het rijnummer opzoekt, dan zou die niet lager mogen zijn dan 2, dus daar een ondergrens op geplakt.
- voor dat rijnummer wordt nu gekeken naar de laatst gebruikte rij in de C-kolom. Het was niet zo dat de gegevens gewist worden, ze verhuizen naar helemaal onderaan, buiten het beeld.
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets("10 euro") 'op dit werkblad
.Unprotect 'beveiliging er af
regel = Application.Max(2, .Cells(Rows.Count, 3).End(xlUp).Row) 'nummer laatst gebruikte in kolom C, met 2 als ondergrens
MsgBox "eventjes het rijnummer vermelden : " & regel
.Range("A2:P" & regel).Sort .Range("P2"), xlDescending, Header:=xlNo 'sorteren op de P-kolom, zonder header
.Protect 'blad weer beveiligen
End With
End Sub