Odkaz na poslední změněnou buňku Vyřešeno
-
- nováček
- Příspěvky: 17
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Odkaz na poslední změněnou buňku Vyřešeno
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
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
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
-
- nováček
- Příspěvky: 17
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Odkaz na poslední změněnou buňku
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ě.
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
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
JarZa
-
- nováček
- Příspěvky: 17
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Odkaz na poslední změněnou buňku
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
Re: Odkaz na poslední změněnou buňku
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
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
-
- nováček
- Příspěvky: 17
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Odkaz na poslední změněnou buňku
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
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
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
If Cells(i, 2) = Cells(TargetRow, 3) Then GoTo
má být
If Cells(i, 2) = Cells(Target.Row, 3) Then GoTo
-
- nováček
- Příspěvky: 17
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Odkaz na poslední změněnou buňku
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
-
- 3
- 3867
-
od petr22
Zobrazit poslední příspěvek
30 črc 2024 21:38
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti