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

gegevens sorteren

Status
Niet open voor verdere reacties.

wessie

Gebruiker
Lid geworden
25 sep 2009
Berichten
20
Goeiendag allemaal,

Ik wil graag gegevens in de juiste volgorde zetten maar de gegevens zijn niet eenduidig. Ik heb namelijk een lijst met locaties in een magazijn.
Die locaties zijn bijvoorbeeld:
20a101.1
20a101.2
etc.
maar ook
20a1
20a10.1

excel zet dan 20a12.1 na 20a111.4

Kan ik hier omheen zodat het in de juiste volgorde komt. Ik kan namelijk niet de locatie 20a12.1 veranderen in 20a012.1 terwijl ik zoiets wel in excel wil (een formule die dat automatisch aanpast???)
 
Vast wel iets mogelijk, maar begin eens met een representatief voorbeeldje (excel-bestand) te plaatsen.

Geef hierin de mogelijke locatie-aanduidingen aan, en ook (handmatig) hoe je deze omgeschreven en gesorteerd wilt hebben.
 
Code:
Sub M_snb()
 c00 = "20a12.1"
 c01 = "20a111.4"
 
 MsgBox Left(c00, 3) & Replace(Format(Mid(c00, 4), "000_0"), "_", ".")
 MsgBox Left(c01, 3) & Replace(Format(Mid(c01, 4), "000_0"), "_", ".")
 
End Sub
 
Ik heb een sheet gemaakt. Die code begrijp ik overigens niet helemaal, hoe ik die kan verwerken in mn bestand.

In kolom A staat hoe ik de locaties krijg aangeleverd en in C hoe ik ze gerangschikt zou willen hebben of eventueel zoals in E wellicht na een formule.
 
Je kunt sorteren op een hulpveld met uniforme indeling van de locatie code (00a000.0).

Code:
=LINKS(A1;3)&SUBSTITUEREN(SUBSTITUEREN(TEKST(--SUBSTITUEREN(DEEL(A1;4;5);".";",");"000,0");",0";"");",";".")
Deze formule naar beneden kopiëren.

De formule pakt de eerste 3 posities van de locatiecode en van de rest:
- wordt de punt vervangen door een komma
- dit wordt numeriek gemaakt (met --) en weer naar tekst omgevormd met formaat "000,0"
- vervolgens wordt een eventuele ",0" er afgehaald,
- tenslotte wordt de komma weer gewijzigd in een punt.
 
Laatst bewerkt:
Even wat lopen rommelen met het voorstel van snb. Aangezien jouw voorbeeldje niet aangeeft wat er verder in de tabel staat maar even kolom B gebruikt als tijdelijke kolom. Met een dubbelklik in A1 worden de gegevens gesorteerd.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$A$1" Then Exit Sub
    Application.ScreenUpdating = False
    ar = Columns(1).SpecialCells(2)
    For j = 2 To UBound(ar)
        c00 = c00 & "|" & Left(ar(j, 1), 3) & Replace(Format(Mid(ar(j, 1), 4), "000_0"), "_", ".")
    Next j
    [b2].Resize(UBound(Split(Mid(c00, 2), "|")) + 1) = Application.Transpose(Split(Mid(c00, 2), "|"))
    Cells(1).CurrentRegion.Sort [b1], Header:=xlYes
    Columns(2).Delete
    Cancel = True
End Sub
 

Bijlagen

  • Map2__tigtienduizuiden geef het een naam.xlsb
    16 KB · Weergaven: 17
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan