• 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.

Sorteren mbv Macro's

Status
Niet open voor verdere reacties.

Jasper1908

Nieuwe gebruiker
Lid geworden
27 jun 2012
Berichten
4
Hallo allemaal

Voor mijn werk ben ik bezig met een onderhande werk overzicht. Ik heb een voorbeeldbestand geplaatst met een dergelijke opmaak, het echte bestand is veel groter en bevat meer kolommen maar de gedachte is het zelfde.

Bekijk bijlage voorbeeldbestand excelvraag.xlsx

Tab 1 is ongesorteerd, tab 2 is het bestand maar dan gesorteerd op status. Op het moment dat de status van een van de producten wijzigt wil ik dat deze bij de producten komt te staan met dezelfde status. Ik heb dit nu gedaan door een custom list in te vullen onder sort. Het nadeel van het gebruiken van Sort is dat ik eerst een selectie toe moet passen. In dit geval wil ik alleen B2:D19 sorteren.Kolom A en Rij 1 moeten blijven staan.
Ik zou dit nu willen bereiken door bijvoorbeeld in D20 een link op button "Sorteren" te maken waardoor de eerder genoemde selectie opnieuw op status gesorteerd wordt. Ik ben alleen niet erg bekend met het schrijven van macro's. Zou iemand kunnen vertellen hoe ik dit voor elkaar kan krijgen?

Alvast bedankt
 
Verwijder op je 1e tabblad na, alle tabbladen in je voorbeeld.
ALT + F11 en dubbelklik in het geopende venster op de naam van je eerste werkblad.
Kopieer en plak onderstaande
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row)) Is Nothing Then
        If Target <> "" Then
            If Sheets.Count > 1 Then
                Sheets(2).Delete
            Else
                Sheets(1).Copy , Sheets(Sheets.Count)
                With ActiveSheet
                    .Name = "Gesorteerd"
                    .Range("B2:D" & .Range("D" & Rows.Count).End(xlUp).Row).Sort .Range("D1")
                End With
            End If
        End If
    End If
Application.DisplayAlerts = True
End Sub
Als er nu een cel in kolom D wordt gewijzigd dan wordt er een nieuw tabblad aangemaakt, benoemd en gesorteerd.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan