Stránka 1 z 1

Odkaz na poslední změněnou buňku  Vyřešeno

Napsal: 22 srp 2008 15:25
od tomasholecek
Potřebuji poradit. Potřebuji v VBA použít hodnotu z poslední změněné buňky (tato buňka může být libovolně umístěná v listu). Jinak řečeno, zapíšu hodnotu (číslo) do libovolné buňky a při zmáčknutí enteru( nebo vyjetí z buňky směrovou šipkou nebo kliknutí myši mimo buňku) potřebuji spustit proceduru ve které bude použita hodnota z poslední změněné buňky. Dík

Re: Odkaz na poslední změněnou buňku

Napsal: 25 srp 2008 16:06
od JarZa
Ahoj,
použij hodnotu Target.Value nebo Target.Formula - ve VBA dvojklikem na příslušném listu - vybrat událost Worksheet_Change - viz kód níže a obrázek.

JarZa

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)
   MsgBox Target.Formula
End Sub

Re: Odkaz na poslední změněnou buňku

Napsal: 25 srp 2008 19:12
od tomasholecek
Dík, vypadá to nadějně. Ještě bych potřeboval poradit, jak přiřadit číslo řádku(popřípadě sloupce) do nějaké proměnné. Něco ve stylu
k = Target.Row
popřípadě jak to zapsat v podmínce
If Target.Row < 2 Then .....
Tyto syntaxe mi nefungují, tak jak by to mělo vypadat správně.

Re: Odkaz na poslední změněnou buňku

Napsal: 26 srp 2008 08:54
od JarZa
Podle mě to máš napsáno správně - Target.Row / Target.Column by měl bez problémů fungovat (ověřeno v Office 2003).
JarZa

Re: Odkaz na poslední změněnou buňku

Napsal: 26 srp 2008 12:35
od tomasholecek
Mám office 2007. Zkus mrknout na přiložený soubor, jestli Tě nenapadne, co je tam blbě, protože mi to nechce fungovat. (V modulech nefuguje část Sub Makro() zastaví se to hned na prvním řádku: If Target.Column < 4 Then GoTo Line2 ). V office 2003 tam bude asi rozhasený formátování, ale to není podstatné. Dík

Re: Odkaz na poslední změněnou buňku

Napsal: 26 srp 2008 14:45
od JarZa
Ahoj,
problém bude v tom, že Target a jeho vlastnosti (.Row, .Column, ...) jsou dostupné (živé) pouze v rámci události Worksheet_Change().
Takže v uvedeném případě by se Sub Makro() buď muselo napsat s uvedením parametrů a s těmito parametry pak volat z Worksheet_Change, anebo (jednodušší) kód Makro() vepsat přímo do procedury Worksheet_Change() - viz příloha.

JarZa

Re: Odkaz na poslední změněnou buňku

Napsal: 26 srp 2008 15:38
od tomasholecek
Tak bohužel mi ta příloha nefunguje. Hlásí to Run-time error '1004':
Application-defined or object-defined ereror. a zastaví se to na řádku:If Cells(i, 2) = Cells(TargetRow, 3) Then GoTo

Re: Odkaz na poslední změněnou buňku

Napsal: 26 srp 2008 15:56
od JarZa
Jo, chybí tam tečka mezi Target a Row

If Cells(i, 2) = Cells(TargetRow, 3) Then GoTo

má být

If Cells(i, 2) = Cells(Target.Row, 3) Then GoTo

Re: Odkaz na poslední změněnou buňku

Napsal: 27 srp 2008 10:58
od tomasholecek
Vidiš, toho sem si nevšim, dík moc, už to funguje