Ga naar inhoud

VBA en Excel


Aanbevolen berichten

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! :)
Link naar reactie
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.
Link naar reactie
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.
Link naar reactie
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.
Link naar reactie
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.
Link naar reactie
[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.
Link naar reactie
[quote:7eef1b3bed]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[/quote:7eef1b3bed] Oh oké :) Ik ben meer iemand van de hele uitleg in één keer....niet zo van aanzetten.... :P Maar goed...........alles werkt inmiddels naar behoren...gelukkig maar.[/quote]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...