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

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
535
Bij het invoeren van een tekst in de laatst blanco cel van kolom A
komt onderstaande macro automatisch in werking.
Deze cel word dan automatisch op de juiste plaats gezet.
Vraag is : hoe kan deze macro worden aangevuld zodanig dat ook
de cursor naar deze cel springt. Nu blijft hij staan op de laatste
blanco cel.
Met gewaardeerde dank bij voorbaat.

Code:
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("A4:A1000").HorizontalAlignment = xlLeft
Range("B4:C1000").HorizontalAlignment = xlCenter
On Error Resume Next
  If Target.Column < 5 Then Target = UCase(Target)
    Columns.AutoFit
    Range("A4:W" & Range("A" & Rows.Count).End(xlUp).Row).Sort Range("A4")
    Rows.AutoFit
Application.EnableEvents = True
End Sub
 
Die macro wordt uitgevoerd bij iedere wijziging in het werkblad, dus niet alleen bij de laatste blanco cel in kolom A.
Mij is niet duidelijk welke cel je actief wilt hebben als die macro zijn werk heeft gedaan.
 
Wanneer ik bijvoorbeeld een tekst invoer "ABCDE" in cel A100, dan doet inderdaad de macro zijn werk en plaatst hij ABCDE op de juiste plaats in kolom A. Ik ,wil echter ook dat dan deze cel word geactiveerd op deze plaats, zodat ik dan verdere invulling kan doen van de andere cellen op die lijn.
 
Misschien zo:
Code:
Sub Worksheet_Change(ByVal Target As Range)
    Dim vT
    
    vT = Target.Value
    Application.EnableEvents = False
    Range("A4:A1000").HorizontalAlignment = xlLeft
    Range("B4:C1000").HorizontalAlignment = xlCenter
    On Error Resume Next
    If Target.Column < 5 Then Target = UCase(Target)
    Columns.AutoFit
    Range("A1:W" & Range("A" & Rows.Count).End(xlUp).Row).Sort Range("A1")
    Rows.AutoFit
    Application.EnableEvents = True
    Application.Goto Target.EntireColumn.Find(vT, lookat:=xlWhole)
End Sub
 
Zeer bedankt, Timshel
Is inderdaad oplossing voor mijn probleem.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan