Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VBA en Excel

Mouse Interactive
7 antwoorden
  • Hallo allemaal,

    Ik zit met een probleempje waar ik niet zo snel uitkom:

    Ik wil met VBA van een bepaalde kolom de laatste cel selecteren waarin nog een waarde staat. (Bijvoorbeeld als er in C1:C14 nummers staan, dan wil ik dus het laatste nummer van kolom C, dus cel C14 selecteren).
    Ik heb echter geen idee hoe dit moet……..uit de helpbestanden wordt ik ook niet veel wijzer :evil:

    Verder wil ik dat (uitgaande van het voorbeeld), zodra dan b.v. C14 geselecteerd is, dat van die rij (in dit geval rij 14), cel H wordt geselecteerd. (dus H14).

    Dit is ongetwijfeld een simpel stukje VBA code, maar ik kom er niet uit :roll:

    Zou iemand me willen helpen?

    Alvast bedankt! :)
  • In VBA bestaad het commando Cells. Hiermee kun je de waarde van een specifiele Cel uitlezen. Zo kun je dus zien of er een waarde in die Cel staat.

    Als je niet weet hoe je een Cel moet selecteren neem je een Macro op waarbij je een Cel selecteerd. In de VBA-code kun je dan lezen hoe je een bepaalde Cel selecteerd.

    Ik heb hier geen Excel bij de hand, dus ik kan je de code niet geven, maar ik hoop dat je hiermee in elk geval verder komt.
  • Mouse,

    De help van VBA is inderdaad bedroevend, althans wat betreft de zoekfunctie. Het went nooit….
    Ik zal je op weg helpen. Ik heb iets dergelijks jaren geleden aan de hand gehad, en heb dus even het 'laatste cel' probleem weer uitgeprobeerd.

    Als code om mee te starten kun je gebruiken:
    [code:1:5bda568944] ActiveCell.SpecialCells(xlLastCell).Select
    LaatsteRij = ActiveCell.Row[/code:1:5bda568944]
    Hiermee kun je voor jou kolom vanaf de LaatsteRij teruglezen welke laatste cel 'iets' bevat.
    (Excel-97, W98)

    Veel plezier, Maarten.
  • Sorry, dubbel bericht…
  • Bedankt voor de reacties!

    Maarten, je code werkt toch niet helemaal goed. Excel selecteert telkens cel K38 :-?

    Maar ik heb een alternatieve code van een website geplukt die wel werkt :D

    Dit is hem:
    [code:1:b9fa5bedb7]Range("A" & CStr(Rows.Count)).End(xlUp).Select[/code:1:b9fa5bedb7]
    En dit is de uitleg:
    De selectie die wordt gemaakt bestaat eigenlijk uit twee gedeelten. Eerst wordt de laatste cel benoemd in het werkblad met behulp van ("A" & CStr(Rows.Count)) en daaraan gekoppeld wordt onmiddellijk 'gezegd' dat de laatste cel van hetzelfde type 'omhoog' gevonden moet worden: End(xlUp). Op deze manier (er vanuit gaand dat de allerlaatste cel in kolom A leeg is), wordt de laatste regel gevonden waar nog een waarde in staat.
  • Je oplossing hierboven geldt alleen voor kolom A.
    Wil je de oplossing laten gelden voor om het even welke kolom waarin de cursor staat, dan kun je bv. deze macro gebruiken:

    [size=9:74d9d1d62d]
    Sub test()
    Cells(65536, ActiveCell.Column).End(xlUp).Select
    End Sub
    [/size:74d9d1d62d]

    Als de cel die met deze macro gedetecteerd is, geselecteerd is wil je nog een andere cel selecteren. Maar 2 niet-aaneengesloten cellen tegelijkertijd selecteren zonder de tussenliggende cellen te selecteren, is onmogelijk.
  • [quote:f85bbf701b]Maarten, je code werkt toch niet helemaal goed. Excel selecteert telkens cel K38 [/quote:f85bbf701b]

    Ik gaf met mijn aanwijzing een voorzet, die jij moet afmaken. Hetzelfde geldt voor de aanwijzingen (die specifieker zijn) van de latere reacties. Je moet dus een deel van de programmering zelf doen!
    De beste hulp is een steuntje in de rug om over een drempel heen te helpen! Pijnlijk, maar dan geneest het. :D

    Mijn aanwijzing geeft de uiterste cel rechtsonder die ooit in gebruik is geweest. Lager of meer naar rechts hoef je dus niet te zoeken. Met de variabele LaatsteRij gaf ik aan vanaf welke rij je in de door jou gewenste kolom omhoog (aftellend :) ) moet zoeken totdat je een waarde vindt. Daarna ga je voor die rij naar de andere kolom, etc….

    Groet, Maarten.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.