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

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
tomasholecek
nováček
Příspěvky: 17
Registrován: 22 srp 2008 15:13

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

Příspěvek 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
JarZa
nováček
Příspěvky: 25
Registrován: 22 úno 2008 15:36

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

Příspěvek 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
Přílohy
PC_Help_20080825.jpg
tomasholecek
nováček
Příspěvky: 17
Registrován: 22 srp 2008 15:13

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

Příspěvek 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ě.
JarZa
nováček
Příspěvky: 25
Registrován: 22 úno 2008 15:36

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

Příspěvek 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
tomasholecek
nováček
Příspěvky: 17
Registrován: 22 srp 2008 15:13

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

Příspěvek 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
Přílohy
Prázdný nápočet.xls
(119.5 KiB) Staženo 39 x
JarZa
nováček
Příspěvky: 25
Registrován: 22 úno 2008 15:36

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

Příspěvek 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
Přílohy
Prázdný nápočet_JZ.xls
(111 KiB) Staženo 69 x
tomasholecek
nováček
Příspěvky: 17
Registrován: 22 srp 2008 15:13

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

Příspěvek 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
JarZa
nováček
Příspěvky: 25
Registrován: 22 úno 2008 15:36

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

Příspěvek 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
tomasholecek
nováček
Příspěvky: 17
Registrován: 22 srp 2008 15:13

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

Příspěvek od tomasholecek »

Vidiš, toho sem si nevšim, dík moc, už to funguje
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • P: poslední místo ve Spotify
    od Karrex » » v P: Software
    0 Odpovědi
    9195 Zobrazení
    Poslední příspěvek od Karrex
  • Změna poslední číslice ve více číslech najednou
    od Arnold91 » » v Kancelářské balíky
    7 Odpovědi
    11254 Zobrazení
    Poslední příspěvek od Zivan

Zpět na „Kancelářské balíky“