Laatste cel

Status
Niet open voor verdere reacties.

willema

Gebruiker
Lid geworden
26 aug 2005
Berichten
320
Met Ctrl+End selecteer je de laatste cel op een werkblad.
Maar dat is op een voorbeeldwerkblad niet de laatst gevulde cel.

Na de overbodige rijen en kolommen te hebben verwijderd en daarna de werkmap op te slaan wordt de laatste cel = de laatst gevulde cel.

Maar kan dat sneller met VBA ? Zonder ActiveWorkbook.Save.
De LaatsteRij en LaatsteKolom zijn variabelen (als Integer).

Groeten,
Marnik
 
Nu nog dat voorbeeld dokument ;)
 
Dankjewel MDN111. Ik bekijk deze links.
Wat bedoel je, edmoor ?
 
Je hebt het over een voorbeeld werkblad en ik was in de veronderstelling dat je een voorbeeld dokument had willen plaatsen.
 
Dag edmoor, ach zo :) Ik zou dat kunnen doen, maar vond de situatie te vanzelfsprekend.

Hey MDN111, ik heb de links bekeken en deze gingen ofwel over het opzoeken van de laatst gebruikte cel (maar die ken ik in de vorm van twee Integers Laatste Rij en LaatsteKolom).
En als je de laatste cel wou definieren als laatst gebruikte cel, kwam men ook niet verder dan overbodige rijen/kolommen deleten en opslaan.
Nu het was vooral het commando Activeworkbook.Save, dat ik wil vermijden in het midden van mijn code. En blijkbaar kan het niet zonder.

Ergens op het net iets gelezen over .UsedRange, maar dat lukt niet (omdat ik het verkeerd gebruik misschien ?)

Voorlopig opgelost door het werkblad te blokkeren, behalve de gebruikte cellen. Dat werkt ook.
 
Dag willema !

Volgens deze link https://support.office.com/en-sg/article/Locate-and-reset-the-last-cell-on-a-worksheet-c9e468a8-0fc3-4f69-8038-b3c1d86e99e9 lijkt het Saven onvermijdelijk.

Het echte probleem is mij in feite nog niet duidelijk, maar als je met een worksheet opgescheept zit waarvan de laatste cel zich voorbij de laatste gegevenscel bevindt, zou je een macro kunnen maken die de laatste gegevenscel selecteert en aan deze macro een shortcut-key (bijvoorbeeld Ctrl-e) kunnen toewijzen om snel naar die cel te springen. Het blijft natuurlijk een workaround die misschien voor jou niet past.

Code:
Option Explicit

Sub AssignShortcutKey()
Application.MacroOptions Macro:="FindLastCell", Description:="Jump to the real last cell", ShortcutKey:="e"
End Sub


Sub FindLastCell()  'bewerking van code uit: [url]http://www.ozgrid.com/VBA/ExcelRanges.htm[/url]
Dim LastColumn As Integer, LastRow As Long, LastCell As Range
    If WorksheetFunction.CountA(Cells) > 0 Then
        LastRow = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        LastColumn = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
        Cells(LastRow, LastColumn).Select
    End If
End Sub
Grtz,
MDN111.
 
Probeer eens:

Code:
Sub M_snb()
    For j = UsedRange.Rows.Count To 1 Step -1
       If Not Intersect(Cells.SpecialCells(2), UsedRange.Rows(j)) Is Nothing Then Exit For
       If Not Intersect(Cells.SpecialCells(-4123), UsedRange.Rows(j)) Is Nothing Then Exit For
    Next
    If j < UsedRange.Rows.Count Then UsedRange.Rows(j + 1).Resize(UsedRange.Rows.Count - j).Delete
End Sub
 
Dag snb !

Tijdens het analyseren van je code was ik nog eens op zoek gegaan op het www en tot m'n verbazing heb ik iets gevonden wat nog korter is. Ik heb dat even getest en het blijkt te werken.
Code:
Sub Reset_Used_Range()
    a = ActiveSheet.UsedRange.Rows.Count
End Sub
Zie http://excelexperts.com/VBA-Tips-Reset-the-Used-Range

Grtz,
MDN111.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan