• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Automatisch sorteren

Status
Niet open voor verdere reacties.

mobo2018

Gebruiker
Lid geworden
17 jul 2018
Berichten
68
Goedemiddag,

Ik ben bezig met het sorteren van een overzicht op basis van bepaalde omzetten. Deze moeten gesorteerd worden van laag naar hoog
Hierbij is het de bedoeling dat er bij het toevoegen van een nieuwe regel automatisch een nieuwe oplopende sortering moet plaats vinden.
Dit lukt ook aardig totdat de regel toegevoegd is.
Als ik op "enter" druk, blijf ik in de betreffende cel staan i.p.v. een cel omlaag
Na een 2e keer op "enter" te drukken kom ik wel naar de onderliggende cel.

Ik heb de volgende gemaakt:

Range("AA5:AC20").Select
ActiveWorkbook.Worksheets("Sheet 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("AC5"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("AA6:AC20")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range(Target.Address).Select
End Sub

Na wat zoeken en testen vermoed ik dat de regel: "Range(Target.Address).Select" niet klopt.
Kan iemand mij laten weten hoe ik dit moet aanpassen zodat ik maar 1 keer hoef te enteren?

Alvast bedankt

Gr,
Mo
 
Waarom laat je de regel die begint met Sub niet zien?
Dat is in deze wel een belangrijke.
 
Inderdaad.

Knip en plakfoutje van mij.
De regel is: Private Sub Worksheet_Change(ByVal Target As Range)
 
Plaats ook een voorbeeld documentje.
 
In de bijlage een voorbeeld
Als ik de regio's 54 en 55 in kolom L wil plaatsen moet ik 2 keer enteren.

De gegevens in de linker kolommen krijg ik dagelijks aangeleverd.
 

Bijlagen

Maak er eens dit van:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("N1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("L2:N20")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.Goto Target.Offset(1)
End Sub
Je kan ook nog controleren of Target wel binnen de gewenste range valt.
Nu wordt de Sub nog uitgevoerd bij een wijziging in iedere willekeurige cel.
 
Laatst bewerkt:
Maakt niet uit waar de tabel staat.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Listobjects(1).Range.Sort listobjects(1).listcolumns("omzet").range, 1, , , , , , 1
End Sub
 
Beide oplossingen werken.

Hier kan ik verder mee.

Dank je wel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan