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

Cursor of scherm verschuiven

Status
Niet open voor verdere reacties.

Evelthoven

Gebruiker
Lid geworden
26 sep 2006
Berichten
690
Goedemiddag,

Voor een bestand met een lange lijst die uit honderden regels bestaat heb ik een macro gemaakt (met info uit dit forum en kopiëren en plakken) met de volgende code:
HTML:
Sub Sorteren_gegevens()
'
' Sorteren_gegevens Macro
   
Application.ScreenUpdating = False
Application.EnableEvents = False

With Sheets("Gegevens")
    Lastrow = .Range("A65535").End(xlUp).Row
    .Range("A6:G" & Lastrow).Sort key1:=.Range("B5"), Key2:=Range("A5"), key3:=Range("C5")
End With

Range("A65535").End(xlUp).Offset(1, 0).Select

Application.EnableEvents = True
Application.ScreenUpdating = True


End Sub

Het sorteren gaat goed, maar één ding krijg ik niet voor elkaar. Wat ik nog zou willen is dat ik na het uitvoeren van de macro op mijn beeldscherm de laatste regels (rijen) zie van waaruit ik dan verder kan gaan met het invoeren van nieuwe gegevens. Nu is het zo dat wat ik zie blijft staan en het beeld niet naar onderen schuift. Bijv. de cursor staat op A5 en na het uitvoeren van de macro is de cursor wel naar de eerste lege cel in kolom A gegaan maar niet het volledige beeld. Ik zie nog steeds het beeld van voordat ik de macro uitvoerde.
Kan iemand a.u.b. de code aanpassen? Misschien kan de code ook nog korter of zijn er nog andere verbeteringen/aanpassingen mogelijk.

Alvast bedankt.

Gr. Eric
 
Als je Application.ScreenUpdating = False uitschakeld, zal dat denk ik je probleem oplossen.
 
Volgens mij zo te zien word hij op het eind v.d. Macro weer op True gezet.
 
Dat klopt, maar de tussenliggende code wordt uitgevoerd met Application.ScreenUpdating = False, dus blijft het scherm staan op het punt waar je de macro hebt gestart.
Als je dit weghaalt, dan zal de macro bij elke actie het scherm updaten, dus ook wat EVELTHOVEN vermoedelijk wilt, dat het scherm staat op de eerste lege cel in kolom A.
Haal je het niet weg, dan zal het scherm op hetzelfde punt blijven staan, wat logisch is.

Als je Application.ScreenUpdating = False niet meer op true zet kan dat volgens mij rare effecten geven in het vervolg, ik heb het eigenlijk nooit geprobeerd, maar mij is vanaf dag 1 ingeprent, als je Application.ScreenUpdating = False zet, vergeet nooit om het weer op true te zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan