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

Naar de laatste cel met gegevens gaan zonder ctrl + end

Status
Niet open voor verdere reacties.

Gier77

Gebruiker
Lid geworden
25 mrt 2014
Berichten
10
Ik doe diverse bewerkingen met vba in een bepaald bereik van cellen in een Excel document. Dit bereik bepaal ik momenteel door met ctrl + end de laatste cel te zoeken.

Dit werkt op zicht wel, alleen is het bereik soms veel groter dan ik wil. De bewerkingen die ik uitvoer in vba duren soms heel erg lang omdat het bereik veel groter is dan noodzakelijk. Met ctrl + end worden soms ook heel veel lege cellen meegenomen (zie voorbeeld). Ik weet niet waarom dat gebeurd maar aangezien ik de bewerkingen op verschillende Excel bestanden moet kunnen doen heb ik hier geen invloed op.

Weet iemand hoe ik de laatste cel in een Excel blad kan opzoeken zonder dat alle lege cellen erna meegenomen worden?

Voorbeeld bestand:
Bekijk bijlage Voorbeeld.xlsx
 
Verwijder alle kolommen na het gebied dat je nodig hebt; verwijder alle rijen buiten dat gebied ook.
Sla het bestand op en open het opnieuw; dan is je probleem ook verdwenen.
 
Bedankt voor je reactie.

Ik snap deze oplossing. Dit is alleen geen optie omdat het een handmatige actie is. De bedoeling is dat anderen het programma toepassen op hun eigen bestanden. Ik wil voorkomen dat zij eerst handmatige acties moeten doen voordat ze beginnen.

Ik zoek dus echt de code om de laatste cel met een waarde op te zoeken in een Excel blad.
 
kan je dit niet gewoon doen via "Ctrl + pijltje naar onderen" (laatst ingevulde cel in kolom) + "Ctrl + pijltje naar rechts" (laatst ingevulde cel in rij)

edit: dan moet je wel in cel A8 staan en er vanuit gaan dat alles is ingevuld...
 
Laatst bewerkt:
Helaas werkt dat niet. Het moet ook werken al er lege rijen en lege kolommen tussen zitten en met "Ctrl + Pijltje" wil dat dan niet.
 
kan het misschien zijn dat die andere cellen een bepaalde opmaak hebben, waardoor de Ctrl+End verder gaat dan nodig?

Op de site van Office vind ik dit:
"Druk op Ctrl+End om de laatste cel in het werkblad of in een Excel-lijst met gegevens of opmaak te selecteren."
 
Ja, dat klopt denk ik wel. De opmaak wordt ook meegenomen met Ctrl + End. Ik zoek naar een manier die alleen waarden meeneemt.
 
Ik denk dat je #2 niet goed begrepen hebt.
 
Ja, dat klopt denk ik wel. De opmaak wordt ook meegenomen met Ctrl + End. Ik zoek naar een manier die alleen waarden meeneemt.

ik denk een oplossing gevonden te hebben:
verwijder alle kolommen naast je tabel, verwijder alle rijen onder je tabel. Zo ben je zeker dat alle opmaak weg is.
Daarna moet je blijkbaar opslaan, afsluiten en bestand heropenen. Als je daarna Ctrl + End doet werk het!

edit: hmm, dat is dus idd wat snb bij #2 zei, haha, had ik ook niet gezien... Nu wil ik hier eens helpen :-)
 
Laatst bewerkt:
De oplossing die jullie aandragen werkt inderdaad voor de Ctrl + End optie. Alleen in mijn geval werkt dit niet. Zie onderstaande...

Bedankt voor je reactie.

Ik snap deze oplossing. Dit is alleen geen optie omdat het een handmatige actie is. De bedoeling is dat anderen het programma toepassen op hun eigen bestanden. Ik wil voorkomen dat zij eerst handmatige acties moeten doen voordat ze beginnen.

Ik zoek dus echt de code om de laatste cel met een waarde op te zoeken in een Excel blad.
 
Gebruik dan deze functie:
Code:
Sub LaatsteCelInBladBepalen()
Sheets(1).Activate
LRij = Range("A" & rows.count).End(xlUp).Row
  Set rng = Range("ZZZ" & LRij).End(xlToLeft)
  If Not rng Is Nothing Then
    LKolom = rng.Column
  End If
  [C2] = rng.Address
  Set rng = Nothing
End Sub
 
Of deze natuurlijk: :)
Code:
Laatse_cel = Sheets(1).Range("A1").CurrentRegion.Rows.Address
 
@Cobbe,

volgens mij struikelt deze over lege rijen/kolommen
Code:
Laatse_cel = Sheets(1).Range("A1").CurrentRegion.Rows.Address
 
Code:
Sub M_snb()
    On Error Resume Next
    
    For j = UsedRange.Rows.Count To 1 Step -1
        x = Rows(j).SpecialCells(2).Count
        If Err.Number = 0 Then Exit For
        Rows(j).Delete
        Err.Clear
    Next
    For j = UsedRange.Columns.Count To 1 Step -1
        x = Columns(j).SpecialCells(2).Count
        If Err.Number = 0 Then Exit For
        Columns(j).Delete
        Err.Clear
    Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan