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

omgekeerd sorteren en aan begin van range tonen

Status
Niet open voor verdere reacties.

nonono

Gebruiker
Lid geworden
28 jan 2009
Berichten
289
In bijgaand voorbeeld wil ik de range A11:H20 in omgekeerde volgorde zien.
Er zijn echter 3 records ingevuld. Op een later moment kun je dit dan nog aanvullen met nieuwe records.
Wanneer je nú een selectie maakt in omgekeerde vogorde dan verschijnen eerst de lege records.

Hoe bereik je, dat de lege records naar beneden verschuiven. Oftewel aan het begin van de range staan de records in omgekeerde volgorde.

Bedankt Nono

Code:
Sub test_sorteer_kolom_H_Descending()
'
    Range("A11:H20").Select
    Selection.Sort Key1:=Range("H11"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A10").Select
‘
End Sub

Bekijk bijlage test_sorteer.xls
 
Laatst bewerkt:
Beste nonono ;)

Je kan ook de lege rijen laten verwijderen in je macro.

Code:
For each C in Range ("H1:H20")
If c = "" Then
C.Rows.EntireRow.Delete
End If
Next

Groetjes Danny. :thumb:
 
Danny

Dit gaat niet goed als er 2 lege regels onder elkaar staan. De 1e wordt verwijdert maar de volgende blijft staan.
Dit komt door het feit dat de regels hernummerd worden als er 1 verwijdert wordt.

Je kunt natuurlijk de macro meerdere keren laten lopen maar dat is ook geen oplossing.

Het is beter om van onder naar boven te werken met het verwijderen van de rijen.
 
reply:
Dank voor je reaktie. Maar dit is niet de bedoeling.
Het is de bedoeling om de lege records ook daarna nog op te kunnen vullen.
Onder de grijze cellen zit een bewerking, die bewaard moet blijven.

Groet Nono
 
Laatst bewerkt:
nonono,

in jouw formule gebruik je ""

Code:
=ALS((D11*F11)>0;(D11*F11);"")

Vervang dit door een 0 en het sorteren gaat goed.
Als je de 0 niet wil zien dan kan je deze laten onderdrukken.:thumb:
 
Deze vlieger gaat niet op.
Op de lege plaatsen wordt inderdaad 0 ingevuld.
Vervolgens aflopend sorteren en de nullen worden als eerste getoond.

Groet Nono
 
Nonono

Dat is heel bijzonder .

ik gebruik jouw macro : Sub test_sorteer_1_kolom_H_Descending()

En dan staat 20,00 bovenaan gevolgd door 6.00 en 5.00 Daarna een aantal lege regels.
 
nonono

Zoals gezegd : Vervang "" door een 0 en het gaat goed. Netjes aflopend gesorteerd.
 

Bijlagen

Akkoord. Het sorteren gaat nu inderdaad goed.
Wat blijft: er staan nullen in de aflopende sorteeraktie.

Wat is het problem?
In een vervolgblad (bijv. een rapport) wordt het solteerresultaat overgenomen. Dus ook de nullen.
In het vervolgblad (sheet2) moeten dus alleen de reële records staan en niet de nullen.
Dit ter verduidelijking in de nieuwe voorbeeld file met een vervolgblad (test_sorteer_new.xls)

Groet Nono

Bekijk bijlage test_sorteer_new.xls
 
Laatst bewerkt:
Ter verduidelijking: de sorteeraktie wordt uitgevoerd in Sheet 1.
Het resultaat in Sheet 2 moet beginnen op A11.
 
Wanneer in Tools/Optioms/View “Zero Values” wordt geinaktiveerd, dan verdwijnen de nullen.
Dit heeft geen resultaat op de sorteervolgorde.
 
Ik begin het problem iets beter te begrijpen, maar het brengt mij niet verder.
Het gaat om de formule in “H11:H20”:
Code:
=IF((D11*F11)>0,(D11*F11),"")
Als de waarde >0 is, dan is de waarde nummeriek. Als de waarde <0 is, dan wordt de waarde als tekst gezien.

Vervolgens verander ik de formule in:
Code:
=IF((D11*F11)>0,(D11*F11),"0")
Dan verschijnen in de lege cellen nullen. Sorteren in aflopende volgorde plaatst gevulde cellen onderaan.

Vervolgens verander ik de formule in:
Code:
=IF((D11*F11)>0,(D11*F11),"-1")
De lege cellen krijgen nu de nummerieke waarde -1.
Vervolgens aflopend sorteren. En weer worden de gevulde cellen onderaan geplaatst. Cellen “H11:H20” hebben nu allen een nummerieke waarde en toch worden de kleinste bovenaan geplaatst met aflopend sorteren.

?????
 
NoNoNo

In mijn voorbeeldje heb ik de "" vervangen door een 0.
Code:
=IF((D11*F11)>0,(D11*F11),[B]0[/B])

Maar jij hebt een 0 tussen de "" geplaatst en dat is niet de bedoeling.
De "" maken er tekst van.


Code:
=IF((D11*F11)>0,(D11*F11),[B]"0"[/B])
 
Met de formule:
Code:
=IF((D11*F11)>0,(D11*F11),"-1")
ben ik op een dwaalspoor gezet.
De cellen met waarde -1 kun je wel gebruiken in een nummerieke bewerking. Maar worden niet als nummeriek gezien bij het sorteren.

Je hebt volkomen gelijk. Het is opgelost met:
Code:
=IF((D11*F11)>0,(D11*F11),0)


Bedankt Nono :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan