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

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

Moderátor: Mods_senior

tomasholecek
nováček
Příspěvky: 17
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod tomasholecek » 22 srp 2008 15:25

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

Reklama
JarZa
nováček
Příspěvky: 25
Registrován: únor 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod JarZa » 25 srp 2008 16:06

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: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod tomasholecek » 25 srp 2008 19:12

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: únor 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod JarZa » 26 srp 2008 08:54

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: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod tomasholecek » 26 srp 2008 12:35

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 29 x

JarZa
nováček
Příspěvky: 25
Registrován: únor 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod JarZa » 26 srp 2008 14:45

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 57 x

tomasholecek
nováček
Příspěvky: 17
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod tomasholecek » 26 srp 2008 15:38

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: únor 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod JarZa » 26 srp 2008 15:56

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: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod tomasholecek » 27 srp 2008 10:58

Vidiš, toho sem si nevšim, dík moc, už to funguje


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti