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

VBA code sorteren werkt niet correct

Status
Niet open voor verdere reacties.

Marky76

Gebruiker
Lid geworden
26 okt 2002
Berichten
424
In bijlage een lijstje dat ik wil sorteren op kolom A.
Maar ik wil dat hij pas vanaf rij A4 begint te sorteren, maar hij sorteert de naam en al mee
en plaats alles tot in kolom A.
Wat is er fout aan de code?

Groeten, Mark

Komt dit omdat er columns staat. Als ik dit in Range A4:E65536 verander gaat het nu.
Maar als ik met Columns wil werken moet ik bij Header: xlYes zetten en dit kan alleen
gebruikt worden als de titels in de eerste rij staan en de gegevens er direct onder.
Klopt dit??
 

Bijlagen

Laatst bewerkt:
Hoi Marky76,

Probeer dit eens:
Code:
    Dim LastRow As Long
    LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
    Range("A3:I" & LastRow).Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 
Ben ervan overtuigd dat die van u werkt, maar ik probeer zelf een beetje VBA te schrijven en zo graag indien mogelijk hebben dat je met mijn code voort werkt.
Wat was er juist mis aan mijn code?

Groeten, Mark
 
Dan zal ik je een tip geven.

Columns("A:I").Select Wat selecteer je hier, en hoe kan Excel weten dat je Header in rij 3 staat en niet in rij 1
 
Ik heb er dit van gemaakt en nu werkt het.


Range("A4:I65536").Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A4").Select
Range("A65536").End(xlUp).Offset(1, 0).Select

Kan dit nog beter geschreven worden of korter?

Groeten, Mark
 
Ik heb er dit van gemaakt en nu werkt het.

Range("A4:I65536").Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A4").Select
Range("A65536").End(xlUp).Offset(1, 0).Select

Kan dit nog beter geschreven worden of korter?

Groeten, Mark

Gebruik code tags aub, dan wordt je code leesbaar.

Maak er dit van:

Code:
Range("A4:I" & Rows.Count).Sort Key1:=Range("A4"), Order1:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A" & Rows.Count).End(xlUp).Offset(1).Select

NB : het bereik dat je wilt sorteren lijkt mij wel heel groot. Kan dat niet minder zijn?

Wigi
 
Ik ken al die termen zoals tags nog niet, nogmaals ik ben het maar aan het leren en doe
het voor het plezier, na mijn werkuren.
Dus moet je dat zo niet op die manier zeggen.

In ieder geval de code is korter, dus lijkt me beter om toe te passen.

Groeten, Mark
 
Ik ken al die termen zoals tags nog niet, nogmaals ik ben het maar aan het leren en doe het voor het plezier, na mijn werkuren.
Dus moet je dat zo niet op die manier zeggen.

Alle respect daarvoor, ik zit in dezelfde situatie. Maar kan je dat dan niet vragen? Je hebt ondertussen al bijna 50 topics gestart en al 140 posts geschreven. Ik of iemand anders zal je zeker en vast gezegd hebben wat het is en waar het voor dient, als jij dat vraagt. Maar daar neem je niet de moeite voor.

Waarom "code tags" belangrijk zijn? Ik - en nog een aantal anderen ook - doen telkens opnieuw weer de moeite om andermans code te lezen, te bestuderen, te beoordelen. Het minste dat we dan vragen is dat er code tags gebruikt worden. Akkoord of niet?

On topic: de code is niet alleen korter, ze is ook efficiënter aangezien er minder geselecteerd wordt.

Groeten

Wigi
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan