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

Automatisch sorteren excel macro

Status
Niet open voor verdere reacties.

mh1992

Gebruiker
Lid geworden
7 aug 2013
Berichten
5
Beste allemaal,

Ik hoop dat jullie mij kunnen helpen.
Ik heb een werkblad gemaakt in excel waar regelmatig veranderingen in worden doorgevoerd. Het betreft een klachtenregistratiesysteem.
Daarbij wil ik het een en ander gesorteerd hebben. Handmatig sorteren red ik, maar ik zou graag willen dat dit automatisch geschiedt.
Ik heb al het een en ander geprobeerd omtrent macro's, echter krijg ik het niet voor elkaar zoals ik dat wil.
Het werkblad bestaat uit de kolommen A tot en met H. In kolom A staat een datum die handmatig wordt ingevoerd. In de daarop volgende kolommen staat ook informatie die handmatig moet worden verwerkt.
Nu zou ik graag willen dat excel na het invullen van de gehele rij (dus bijvoorbeeld kolom A6 tot en met H7) automatisch sorteert op kolom A.

Ik hoop dat jullie me daar mee verder kunnen helpen door middel van het schrijven van een macro code..

Met hartelijke groet,

Marco.
 
Laatst bewerkt:
Hierbij het bestand.
Ter verduidelijking: de macro zou zo uitgevoerd moeten worden dat eerst de gehele rij met informatie ingevuld moet worden en daarna gesorteerd wordt.

Bekijk bijlage bestand.xlsx

Ik hoop dat jullie me kunnen helpen. Ik krijg namelijk alleen voor elkaar dat excel sorteert voordat alle gegevens in de rij zijn ingevuld.
Ik heb een macro proberen te schrijven maar deze krijg ik niet werkend.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("H5:H2000")) Is Nothing Then Exit Sub
Columns("A:H").Select
Selection.Sort _
Key1:=Range("A5"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub
 
Laatst bewerkt door een moderator:
Even los van jouw vraag: wat doet deze
PHP:
=ALS(A5=0;"";_xlfn.ISOWEEKNUM(A5))
behalve van het weeknummer berekenen:shocked: Na het drukken op <F2> krijg ik #NAAM?
 
Het berekent inderdaad het weeknummer op basis van de ingevoerde datum. De ALS-formule die erin zit zorgt ervoor dat als er geen datum ingevuld staat, dat er geen berekening van de formule wordt uitgewerkt op basis van een aantal, maar geeft dit dan aan als een leeg vak. Vandaar dat er staat; als 'betreffende cel' is gelijk aan 0, dan "" (betekend dat er dan niets hoeft worden neer gezet) en anders als er wel een datum instaat berekend hij wel het nummer.
Echter snap ik niet wat '_xlfn.' betekent, dit komt bij mij namelijk niet naar voren.
 
Laatst bewerkt door een moderator:
Bedankt voor je antwoord. De ALS() snap ik wel:p Maar het ging mij inderdaad om de _xlfn.

Om op jouw vraag terug te komen: Is het niet handiger om de gegevens via een formulier in te vullen? Het lijkt mij vrij irritant dat als je de laatste cel ingevuld hebt en naar een volgend cel gaat dat er dan ineens georteerd wordt.
 
Nee dat is niet makkelijker. Dit is namelijk al het formulier voor het invullen.
Alleen het moet vrij makkelijk kunnen via VBA, alleen bij mij geeft excel nu een foutmelding.
Dus als iemand mij alsjeblieft kan helpen??:)
 
@mh1992 Onnodige quotes verwijderd. Wanneer je direct reageert op een reactie is het niet nodig om dat bericht te quoten. Onnodig quoten heet dat, hetgeen niet gewenst is.
 
@moderator
excuus ben hier nieuw:$

Nog even terugkomend op de vraag die ik stelde...
Ik heb nu de hele dag lopen prutsen en kom nu op het punt dat excel automatisch sorteert na het bereiken van cel H. Echter wil ik dat excel dan naar de volgende cel gaat in kolom A. Dus als ik gegevens heb ingetoetst in cel H10 moet excel A11 selecteren.
Echter met onderstaande code selecteert niet de eerste lege cel in de tabel in kolom A, maar de eerste cel in kolom A die buiten de tabelmatrix valt.
Kan iemand mij asjeblieft helpen dit om te zetten. Ik kom niet op die code namelijk:eek:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("H5:H800")) Is Nothing Then Exit Sub
  Range("H5:H8").Sort _
 Key1:=Range("A5"), Order1:=xlAscending, _
 Header:=xlGuess, OrderCustom:=1, _
 MatchCase:=True, Orientation:=xlTopToBottom
 Range("A65536").End(xlUp).Offset(1, 0).Select
 End Sub
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan