Tak takhle vypadá makro, která dělá co přesně chci, okľuka bola najlepšia :
Sub zkouskamakra()
hoa = 5
Cells(hoa, hoa).Select
Cells(hoa, hoa).Formula = "=" & Cells(7 - hoa, 7 - hoa).Address(0, 1) & "+" & Cells(7 - hoa, 7 - hoa).Address(1, 0) & "*" & Cells(7 - hoa, 7 - hoa).Address(1, 1)
End Sub
Je to jen příklad, číslo 7 nahrazuje další proměnné. Šlo mi o to jak zapsat odkaz s dolarem a bez.
Proč to řeším makrem? Protože, vzorce které se vkládájí do určitých buněk v návaznosti na zadání proměnných - vlastně souřadnic vkládání jsou velmi dlouhé a obsahují několik větvených podmínek když, zaokrouhlování a další a nechceme se mi je furt vypisovat. Takhle to napíšu jednou do makra, uložím do sešitu osobních maker a je to vždy k dispozici.Zadám souřadnice vkládání a je to hned.
Díky za snahu.
Ještě možná jeden dotaz, nějakým příkazem jsem vypnul okýnko, které vyskočí po spuštění záznamu nového makra a je na něm tlačítko "zastavit záznam". Nevím jak to dostat zpátky, aby vyskočilo.
Takže problém je jak upozorňoval ELNINOSLOV :
To R1C1 (konkrétne relatívny odkaz pomocou []) mi príde úplne blbý, pretože treba myslieť nielen na premenné vo vzorcoch, ale navyše aj na konkrétne súradnice bunky, pretože do [] sa zapisuje rozdiel (posun chcenej bunky oproti aktuálne nastavovanej).
Takže moje upřesnění:
Sub zkouskamakra()
Dim hoa As Long
hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5
Cells(hoa, hoa).Formula = "=R" & (7 - hoa) & "C" & (7 - hoa) & "+R" & (7 - hoa) & "C" & (7 - hoa) & "*R" & (7 - hoa) & "C" & (7 - hoa) & ""
End Sub
Výše uvedené makro při proměnné hoa=5 zapíše do buňky E5 =$B$2+$B$2*$B$2
jak docílit toho, abych odstranil ze vzorce 2xznak dolaru - podtržený
Promiň, ale snažíš se aby to pouze napsalo co chci, podle mě odpočítáváš (připočítáváš )nějakou neznámou hodnotu od proměnné hoa. Jestliže změním proměnnou hoa na 4 tak to bude zase psát =$B2+B$2*$B$2 a správně už by mělo být =$C3+C$3*$C$3 (7-4=3, buňka C3, je to pouze příklad s jednoduchou proměnnou, aby se to dobře počítalo.
Sloužit to má pro doplnění vzorců do tabulek, které mají různé rozvržení (počet sloupců a řádků).Proměnnými, je jich asi 6, vlastně určuji souřadnice, kam se to má potom vložit.
Cells(hoa, hoa).Formula = "=R[" & (7 - hoa) & "]C" & (7 - hoa) & "+R" & (7 - hoa) & "C[" & (7 - hoa) & "]*R" & (7 - hoa) & "C" & (7 - hoa) & ""
Takže znovu, jak upravit výše uvedený vzorec - aby to bylo správně. Hodnota sloupce nebo řádku je správně určená, když je to absolutní odkaz se znakem dolaru (bez hranaté závorky). Pokud je to v hranaté závorce, aby to bylo bez znaku dolaru, tak to prostě není správně. Číslo 7 (7-hoa)je tam také jako příklad, někdy to bude 1,3,5,26,100.... a bude ve skutečnosti určeno další proměnnou (třeba hoa2).
Díky, ale furt se nemůžu dopracovat výsledku, níže makro :
Sub zkouskamakra()
Dim hoa As Long
hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5
Cells(hoa, hoa).Formula = "=R[" & (7 - hoa) & "]C" & (7 - hoa) & "+R" & (7 - hoa) & "C[" & (7 - hoa) & "]*R" & (7 - hoa) & "C" & (7 - hoa) & ""
' jak upravit výše uvedený řádek, aby to bylo správně? namísto =$B2+B$2*$B$2 vypíše =$B7+G$2*$B$2
End Sub
Sub zkouskamakra()
Dim hoa1 As Long
hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5
Cells(hoa, hoa).Select
'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_
End Sub
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.
Zápis do buňky se různě mění, to by taky fungovalo : Cells(hoa, hoa).Formula = "=" & Cells(hoa + 1, hob + 5).Address(0, 0). V tomto případě F6.
Jak se změní zápis pro určení absolutního odkazu - $F6, F$6, $F$6? Díky
Zdravím,ještě se vracím k adresování buňky. Proč níže uvedené makro podle mě zapisuje do buňky něco jiného než by mělo? V čem je chyba?
Sub zkouskamakra()
Dim hod1 As Long
Dim hod2 As Long
hoa = 5
hob = 1
Cells(hoa, hoa).Select
'mělo by zapsat do buňky e5 - = R5C1, tedy = A5, ale napíše = F10
Cells(hoa, hoa).Formula = "=R[" & hoa & "]C[" & hob & "]"
End Sub
Díky za radu.
Děkuji pěkně, funguje. Jestli to dobře chápu, tak to dělá ta hranatá závorka.
Díky za radu. I by to nějak fungovalo, při zápisu do listu to za proměnné dosadí dobře, ale udělá z toho absolutní odkaz se znakem dolaru, což se mi moc nehodí, protože v dalším kroku to má buňku zkopírovat níže o x řádku (vložit jinak - vzorce). Možná bylo špatně mé původní zadání. Je nějaké řešení? Díky.
Zdravím,
jak ve VBA adresovat zápis do buňky s použitím proměnné?
proměnné
prvnicislo = Range("H5").Value
sloupecjc = Range("H3").Value
do buňky třeba D4 by měl být zapsán vzorec s podmínkami
Cells(4,4).Select
ActiveCell.FormulaR1C1 = "=IF(R[prvnicislo+5],C[sloupecjc-5]="""","""",IF.........
Díky za radu.
Božské, nemá chybu. Díky
To asi nebude to pravé:
potřeboval bych editovat a odentrovat O1.
Nebo jinak - uložit soubor pod jménem, které se bude skládat :
-text z buňky p1 (nebo definovat cestu)
-text z buňky o1 (jméno)
-datum a čas (nejlépe bez teček 2014 08 12 12 59)
-přípona souboru (*.xls)
Díky
Zdravím, potřeboval bych radu
Mám makro
Sub ulozit()
jmeno = Range("Q1")
ActiveWorkbook.SaveAs Filename:= _
jmeno
'MsgBox "Dokument uložen pod názvem " & jmeno
End Sub
a potřeboval bych před načtením proměnné jmeno jakoby editovat buňku 01 a zmáčknout enter.
Díky za rady
Dobré, dík moc.
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.