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

VBA Activecell selecteren naar laatste cell met waarde

Status
Niet open voor verdere reacties.

gjanus

Gebruiker
Lid geworden
21 nov 2008
Berichten
106
Hallo,

Veel vba codes die in de buurt komen gevonden hier of met google maar lukt mij niet helemaal.
Ik wil via vba een selectie maken vanaf mijn actieve cel tot en met de laatste cel met waarde.

Beide kunnen een volgende keer anders zijn (data dumps uit systeem).


Kan iemand mij helpen?
Alvast bedankt.
 
Dat gaat zo:
Code:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Of als je dat bereik in een Range object wilt hebben:
Code:
Dim rng As Range
Set rng = Range(Selection, ActiveCell.SpecialCells(xlLastCell))
MsgBox rng.Address
 
Laatst bewerkt:
Als het alleen om de kolom gaat van de geselecteerde cel

Code:
Range(Selection, ActiveCell.End(xlDown)).Select
 
Dat gaat zo:
Code:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Of als je dat bereik in een Range object wilt hebben:
Code:
Dim rng As Range
Set rng = Range(Selection, ActiveCell.SpecialCells(xlLastCell))
MsgBox rng.Address

Dankje Edmoor, ik had wat specifieker moeten zijn.

In de data zitten onder het bereik veel lege special cells. Deze wil ik niet meenemen.
Over de data gooi ik subtotalen en door de range te pakken tot de laatste special cells komen er veel lege subtotaal regels.
 
En daarom "zeuren" we dus altijd om een voorbeeld document.
 
En daarom "zeuren" we dus altijd om een voorbeeld document.

Snap ik maar wat lastig na te bootsen - gaat om , het negeren van, special blancs (regels) onder de data en weet niet hoe ik die moet nabootsen in een voorbeeldbestandje.
 
Kan je er dan niet eerst een draaitabel van maken?
 
ehh als je geen (voorbeeld)bestand met dat probleem hebt is er dan wel een probleem?
 
We zeuren ook altijd om niet onnodig te quoten. Als het een puur theoretische vraag is, om toch iets te maken van een slecht ontwerp dan zal je een voorbeeldje moeten kunnen plaatsen. De laatste ingevulde cel kan je vinden door zoiets te gebruiken.
Code:
cells(rows.count,1).end(xlup)

dus van beneden naar boven kijken.
 
Excuses voor de onnodige quote - was uiteindelijk toch vrij makkelijk na te bootsten.

Zie ook tekst in excel bestandje. Ik maak gebruik van de standaard excel functies voor subtotalen en draaitabel, wilde alleen wat handelingen die repeterend zijn opnemen.


Handelingen uitgevoerd:

Range cel a4 select, ctrl+shift+end ingedrukt houden - excel selecteert nu de special blanks mee - ctrl shift pijltje omhoog - excel heeft nu de juiste range

Subtotaal op Project - som over de kolommen: kosten - kosten nog te gaan - eac (alle vinkjes uit bij selectievenster voor subtotalen)
Subtotaal op Contract - som over de kolommen: kosten - kosten nog te gaan - eac (alle vinkjes uit bij selectievenster voor subtotalen)

Kosten nog te gaan = handmatig te vullen kolom, tijdens overleg wil je als je deze vult de subtotalen graag even zien, vandaar deze handelingen.

Na overleg verwijder ik de subtotalen
Draaitabel overheen om verder te rapporteren (veelal draaitabel en draaigrafiek).

Onderaan staan nu lege rijen met special blancs.. Deze zijn klaarblijkelijk ontstaan door de subtotaal regels.

Deze handelingen (tot draaitabel) wilde ik graag opnemen in een macro.

Geprobeerd macro op te nemen:
Handmatig: begin range cel a4, ctrl+shift+end ingedrukt houden - excel selecteert nu de special blanks mee - ctrl shift pijltje omhoog - excel heeft nu de juiste range
handmatig gaat dus goed.

Voer je de opgenomen Macro (zie macro test) uit dan selecteert excel cell a1 tm e25
Wat ik graag zou willen is selectie a4 tm e17 (dit is alleen de range uit voorbeeldbestand - range is niet vast in werkelijk bestand)
Belangrijk om eventueel te weten - in de toekomst kunnen er kolommen en rijen bijkomen - liever niet een vaste kolom range in macro, gewoon selectie tm laatste cel met value


op blad 2 staan zelfde gegevens zonder deze tekst ernaast

Een oplossing is de range dan eerst weer naar tabel te converteren maar niet helemaal wenselijk omdat deze dan nogal knoeit met (voorwaardelijke) opmaak.

Wederom bedankt en excuses dat ik niet eerder testte of de special blanks rijen makkelijk na te bootsen waren.
 

Bijlagen

  • Map2.xlsm
    17,8 KB · Weergaven: 13
Laatst bewerkt:
Zou iemand het nog willen proberen met mijn laatste uitleg? Volgens mij gebruik ik vrij standaard excelopties en ontstaan deze blancs alsnog.
 
Probeer deze beide macro's eens uit:

Code:
Sub testSubTotaal()
    Range("A4").CurrentRegion.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=False
End Sub

Sub RemoveSubTotaal()
    Range("A4").CurrentRegion.RemoveSubtotal
End Sub
 
Dankje LuckyHeyndrickx.

Werkt prima in het test bestandje, net niet helemaal lekker in het werkelijk bestand. Dit omdat de subtotalen niet op elke kolom hoeft en twee maal uitgevoerd moet worden.
Dit heb ik echter al reeds opgenomen in een macro.

Waar ik alleen tegenaanloop zijn de blancs onderop. Die moet hij niet meepakken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan