@zac1234
A prečo si hneď nenapísal, že chceš v bunke mať
B2 =$E5+E$5*$E$5
C3 =$D4+D$4*$D$4
D4 =$C3+C$3*$C$3
E5 =$B2+B$2*$B$2
F6 =$A1+A$1*$A$1
G7 a tu ti to vyhodí chybu.
Tak to ten tvoj vzorec robí. Ale to sa asi pýtam zbytočne asi už piatykrát.
Prípadne si zmeň noráciu z A1 na R1C1. Potom uvidíš presne ako má vyzerať výsledný vzorec v bunke. A presne takýto reťazec musíš zadať do toho tvojho makra. Excel vnútorne pracuje práve s takýmto formátom.
Promiň, ale snažíš se aby to pouze napsalo co chci,.....
No ja sa teda snažím pomôcť zadávateľom, teda píšem to čo chcú.
Asi by bolo blbé písať to, čo nikto nechce.
Ale to musí byť z otázky jasné, a v tomto prípade to tak nevidím.
No možno to ELNINOSLOV pripadá blbé, ale asi niečo také ešte nikto okrem teba nepožadoval. Ak by to tak bolo, tak by microsoft určite niečo vymyslel. Stále mi nie je jasné PREČO to musíš riešiť makrom, keď to tam jednoducho ten vzorec môžeš napísať. Prípadne sa na excel vykašli a skús nejaký iný kalkulátor.
Inak nahradiť časť reťazca sa dá cez CTRL+H, prípadne makrom cez replace.
Cells.Replace What:="$B", Replacement:="B", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
V piatom(hoa=5) riadku to má byť: $B2+B$2*$B$2
A vo štvrtom(hoa=4) $B3+B$3*$B$3 ???
Ako mám vedieť, čo tam vlastne chceš?
Tá "nejaká neznáma" je číslo ktoré chceš vo výsledku.
Preto je v tomto $F6+G$7*$H$8
raz (6-hoa) teda vo výsledku chceš 6
a (7-hoa) keď vo výsledku chceš 7 (teda G je siedmy stlpec)
Ak to chceš používať v makre stále, tak by si mal najprv naštudovať, čo je to relatívne adresovanie R1C1
To môže byť aj R[-4]c[-8] teda o štyri riadky smerom hore a o osem stlpcov doľava od danej bunky určenej parametrom hoa.
http://office.lasakovi.com/excel/zaklady/relativni-absolutni-odkazy-excel/
Odkiaľ si zobral tú "7"?
Cells(hoa, hoa).Formula = "=R[" & 2 - hoa & "]C" & 2 & "+R" & 2 & "C[" & 2 - hoa & "]*R" & 2 & "C" & 2 & ""
ps: A prečo sa to musí zapisovať makrom? Aký to má účel?
Sub zkouskamakra()
Dim hoa1 As Long
hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5
'máme výchozí buňku určenou proměnlivou souřadnicí - v tomto případě _
E5, do této chci zapsat (pomocí sčítání nebo odčítání od proměnné hoa) např. $F6+G$7*$H$8_
Cells(hoa, hoa).Formula = "=R[" & (6 - hoa) & "]C6+R7C[" & (7 - hoa) & "]*R8C8"
End Sub
Alebo skús toto: Výsledok je =D4
Cells(1, 1).Formula = "=R4C4"
Cells(3, 3).Formula = "=R[" & (4 - 3) & "]C[" & (4 - 3) & "]"
Cells(5, 5).Formula = "=R4C[" & (4 - 5) & "]"
Cells(7, 7).Formula = "=R[" & (4 - 7) & "]C4"
zac1234 napsal/a:
Tam by to bylo jasné, ale co v té části za rovnítkem : = "=" & Cells(hoa + 1, hob + 5).Address(0, 0).
Jak udělat třeba z hoa + 1 nakonec $6
Díky.
vyskúšaj tieto príkazy.
Malo by ti to docvaknúť
Cells(1, 1).Formula = "=R4C4"
Cells(3, 3).Formula = "=R[4]C[4]"
Cells(5, 5).Formula = "=R4C[4]"
Cells(7, 7).Formula = "=R[4]C4"
CmeldaBoris napsal/a:
Řeším ten samý problém - nedovolit uživateli smazat určité listy. Jdu tímto směrem:
1) Odchytím událost na úrovni listu Worksheet_BeforeDelete()
2) Oznámím uživateli, že je zakázáno mazat tento list
3) Uložím sešit ThisWorkbook.Save (ještě obsahuje mazaný list)
4) Zavřu sešit ThisWorkbook (s oním listem)
FUNGUJE TO, list není odstraněn, ALE Excel při tom spadne (hláška Excel přestal pracovat) i s případnými ostatními otevřenými sešity.
Měl by někdo nějaký tip, jak to udělat, aby se Excel korektně ukončil?
@CmeldaBoris
A to sa nedalo napísať na začiatku?
A toto si neprotirečí?
protože prostě potřebuju mít možnost přidávat listy (např. kopírováním z jiného sešitu), odstraňovat některé listy apod.
@eLCHa
Nie ani ja tam tú udalosť nemám. A reagoval som na iný príspevok. Nejako sa mi to časovo poposúvalo.
A myslím, že v podstate je jedno či vymažem dáta na liste a list nechám prázdny alebo odstránim list.
Teda pokiaľ zadávateľ nemá iný názor.
No zakázať uloženie by taktiež išlo. Ale to asi nebude riešiť problém ak všetko na liste vymažem, prípadne list premenujem.
Možno by to chcelo uviesť aj dôvody, prečo to takto zadávateľ požaduje.
eLCHa napsal/a:
Mno ono to možná funguje, ale tato událost je do VBA přidána kdy? ve verzi 2013? Ve starších Vám to fungovat nebude a nehodí ani chybu, tzn musíte mít jistotu, že všichni používají 2013. Taky tam mohl MS přidat Cancel :( .
Tipl bych že to padání způsobuje běžící kód v zavíraném sešitě, ale je to jen tip.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.