• 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 met beperking van getallen

Status
Niet open voor verdere reacties.

rostie-rostelli

Gebruiker
Lid geworden
13 okt 2005
Berichten
229
Hallo,

Ik heb volgende vraag, ik heb in excel een kolom met verschillende getallen van 5 of meer cijfers, ik wil deze kolom sorteren maar er mag alleen rekening gehouden worden met de eerste 3 cijfers, al wat er achter komt mag geen invloed hebben op de sortering, is dit mogelijk? :rolleyes:

Hopelijk is er een oplossing voor ! :)

Alvast bedankt,
danny
 
Met behulp van een hulpkolom: Tekst naar kolommen vaste scheiding (links 3), bestemming $B$1.
Dan sorteren op kolom B.

Dan kan je Kolom B en C verwijderen.

Dit aals lukt goed als het een eenmalige bewerking is anders zou ik mijn heil zoeken in VBA.
 
Cobbe,

Hartelijk dank voor uw reactie, maar hoe kan ik die vaste scheiding realiseren, je bedoeld dus alles wat na het derde cijfer komt word in een andere kolom geplaatst. :o of heb ik het mis? kan ik dit automatisch laten gebeuren?

alvast bedankt,
danny
 
Alles (of toch héél veel) kan automatisch gebeuren in VBA.
Post eenns een voorbeeld van de situatie en wat je wil bereiken.
Is dit een éénmalige aktie of komt dit steeds terug?
 
Als de gegevens in kolom A staan en je hebt 2 vrije kolommen rechts dan kom je al een heel eind met deze macro:
Code:
Sub Macro1()
  Application.ScreenUpdating = False
    Range("A1:A100").TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(3, 1)), TrailingMinusNumbers:=True
    Worksheets("Blad1").Sort.SortFields.Clear
    Worksheets("Blad1").Sort.SortFields.Add Key:=Range("B1:B100"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("A1:C100")
        .Apply
    End With
    Range("B1:C100").ClearContents
  Application.ScreenUpdating = True
End Sub
 
Dag Cobbe,

De macro werkt in die zin:
Hij scheid de getallen uit kolom A in: de eerste 3 cijfers in kolom B te zetten en de rest in kolom C, tot zover alles ok, maar als ik het goed begrijp zou in de macro daarna kolom B moeten sorteren en daarna kolom B en C verwijderen. is dit correct? dit laatste doet hij echter niet + krijg ik een foutmelding.
Het is jammer dat ik hier van op het werk geen bestandjes kan opladen (beveiliging zeker... ;)) anders kon je het zien.

alvast bedankt,
danny
 
Dan doe je toch ergens iets anders dan zou moeten.:)
Hier doet die macro precies zoals gedacht.

Welke foutmelding krijg je?
 
Hallo cobbe,

De foutmelding in engels:
Run time error 438
Object doesn't support this property or method

Misschien kan je jouw bestandje eens aanhechten, dan zie ik het verschil. (downloaden kan ik hier :thumb:)

Groetjes en al bedankt voor de moeite !!
Danny
 
Is het misschien een versie-verschil?

Probeer deze dan eens:

Code:
Sub Macro1()
    Range("A1:A100").TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(3, 1))
    Range("A1:C100").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("B1:C100").ClearContents
End Sub
 

Bijlagen

Laatst bewerkt:
Dag Cobbe,

Met het bestandje die je mij toezond werkt het niet bij mij, dezelfde foutcode !! ik denk inderdaad dat het aan de versie zal liggen, wij hebben hier nog 2003 !! :rolleyes:
Maar.... met de nieuwe code die je mij gaf werkt het prima! :thumb:

Alvast mijn dank voor de prima oplossing !!;)
Groetjes,
danny
 
of:
Code:
Sub M_snb()
    Range("A1:A100").TextToColumns Range("B1"), 2, , , , , , , , , Array(Array(3, 9), Array(0, 1))
    ActiveWorkbook.Worksheets("Blad1").Range("A1:B100").Sort Range("B1")
    Range("B1:B100").ClearContents
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan