• 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 altijd lastig

Status
Niet open voor verdere reacties.

Abyss

Gebruiker
Lid geworden
28 jul 2005
Berichten
353
Ik heb een klein probleem

I wil een kolom sortren van hoog naar laag.
Lijkt niet zo moeilijk, maar toch lukt mij dit niet.

De betreffende kolom is zeg maar A
Ik selecteer alle kolommen en ik kies "data" (omdat ik nog meer kolommen in mijn sheet heb staan)

dan vink ik alleen kolom A aan en dan zou excel dus van boven naar bededen moeten sorteren
Alleen doet hij dit niet . Halverwege besluit hij in eens dat 4048 lager is dan 679.
Wat is hier aan de hand. de kolom staat als getal in het eigenschappen venster.
er staat ook geen ' voor het cijfer
 
Die kolom rechts laten uitlijnen en die getallen opnieuw intypen.
Er is iets fout gegaan maar wat weet ik ook niet.
Bij mij gaat het nu.
 
Ja!! ik ga natuurlijk niet alle getallen opnieuw intypen.:confused:

Ik heb wel wat beters te doen:D


Abyss
 
Maak gebruik van de functie WAARDE (converteert een tekenreeks die overeenkomt met een getal naar een getal)
 
Beste Abyss,

Jouw getallen zijn geen getallen :-)
Selecteer een lege cel, kopieer deze. Selecteer kolom A t/m E en ga via Bewerken naar Plakken speciaal en selecteer 'Waarden' en 'Optellen'.

Getallen bevatten geen spaties, dus "3734 A" en "3671A" zijn geen getallen, maar tekst. Bij het sorteren van tekst 'kijkt' Excel van links naar rechts.

Groeten,

Richard
 
Hoi,

Aangezien ik nogal gek ben op macro's heb ik er eventjes een Moduletje voor gemaakt.

Code:
Sub Sorteren()
    Dim LastRow As Long
    Dim LastCol As String
    LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
    LastCol = Chr$(Cells.SpecialCells(xlCellTypeLastCell).Column + 65) ' De eerste lege kolom
    
    ' Orginele opmaak kopieeren naar Eerste lege kolom
    Range("B1:B" & LastRow).Copy
    Range(LastCol & "1:" & LastCol & LastRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    ' Tekst converteren naar getallen
    Range(LastCol & "1:" & LastCol & LastRow).Copy
    Range("B1:B" & LastRow).PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False
        
    ' Als decimaal maar dan niets achter de comma
    Range("B1:B" & LastRow).NumberFormat = "0"
    
    ' Sorteren
    Range("A1:F" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

End Sub

Suc6
 
Arno

bedankt voor je eerdere werk. Maar is dit niet simpeler qua code?

Code:
Sub Sorteren()
    Dim LastRow As Long
    LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
    
    ' Orginele opmaak kopieren naar eerste lege kolom
    Cells(1, Columns.Count).Copy
    Range("B1:B" & LastRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlAdd
            
    ' Als decimaal maar dan niets achter de comma
    Range("B1:B" & LastRow).NumberFormat = "0"
    
    ' Sorteren
    Range("A1:F" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess
End Sub

ongeteste code

Wigi
 
Hoi Wigi,

Is misschien wel makkelijker maar helaas werkt dat niet zonder
Code:
 ' Tekst converteren naar getallen
    Range(LastCol & "1:" & LastCol & LastRow).Copy
    Range("B1:B" & LastRow).PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False

Dit is het belangrijkste stuk. Hier worden de 'tekst' cellen omgezet naar 'getal' cellen. Zonder deze conversie, loopt het sorteren mis (probeer maar op zijn voorbeeld bestandje)
 
Hoi Wigi,

Is misschien wel makkelijker maar helaas werkt dat niet zonder
Code:
 ' Tekst converteren naar getallen
    Range(LastCol & "1:" & LastCol & LastRow).Copy
    Range("B1:B" & LastRow).PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False

Dit is het belangrijkste stuk. Hier worden de 'tekst' cellen omgezet naar 'getal' cellen. Zonder deze conversie, loopt het sorteren mis (probeer maar op zijn voorbeeld bestandje)

OK, ik probeer het misschien nog uit vandaag, anders één van de volgende dagen.
 
Hoi Wigi,

Als je bedoeld dat je alleen ', SkipBlanks:=False, Transpose:=False' weg laat. Dan denk ik dat je wel gelijk hebt.

Ik neem deze regel namelijk altijd op met de macro recorder (hoef ik tenminste niet na te denken) :rolleyes:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan