Obsah fóra Fórum Spolku Fórum Spolku
Diskuzní fórum Aethanova Spolku
 
 FAQFAQ   HledatHledat   Seznam uživatelůSeznam uživatelů   Uživatelské skupinyUživatelské skupiny   RegistraceRegistrace 
 NastaveníNastavení   Přihlásit, pro kontrolu soukromých zprávPřihlásit, pro kontrolu soukromých zpráv   PřihlášeníPřihlášení 

Excel VBA

 
odeslat nové téma   Odpovědět na téma    Obsah fóra Fórum Spolku -> Diskuze
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Ghastly
Orc


Založen: 23. 05. 2004
Příspěvky: 182

PříspěvekZaslal: ne červen 25, 2006 11:47 am    Předmět: Excel VBA Odpovědět s citátem

Z úplně jiného sudu :

Do práce si potřebuji udělat takovou pomůcku a z toho důvodu jsem se potopil hlouběji do Excelu a do psaní funkcí ve VBA.
Zatím metodou pokus omyl zkoumám principy a chci se zeptat na následující - v této jednoduché funkci (po zmáčknutí tlačíta načte hodnotu buňky a zapíše jí na přesně určené místo) mi samozřejmě nefunguje ta červeně zvýrazněná část:

Sub tlaèítko1_Klepnout()
Dim x As Integer
Dim y As Integer
Dim z As String
z = List5.Range("D4").Value
x = List5.Range("D6").Value
y = List5.Range("D8").Value

List5.Range("F"+y & 3 + x).Value = z
Beep
End Sub

Prosím poraďte amatérovi jak "vybrat" sloupec vzdálený o y políček od sloupku "F" ?
Děkuji za info.
_________________
Ghastly, Adept Spolku, tulák a dobrodruh
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ursus
Titán


Založen: 22. 04. 2004
Příspěvky: 1560
Bydliště: Na tomto světě už nebydlí

PříspěvekZaslal: po červen 26, 2006 10:27 am    Předmět: Odpovědět s citátem

Tady máš "F" jako písmeno a y jako číslo. Nemůžeš sčítat písmeno a číslo. A VBA nepochopí, že se chceš posunout o y políček od f.

Možnosti jsou 2. Buď napřed F převedeš na číslo, přičteš y, a pak to vrátíš zpátky na písmeno.

dim sloupec as string
dim sloup as integer
sloup = asc("F") + y
sloupec = chr(sloup)

EDIT: Pokud to bude vždy F, pak můžeš vlastně napsat jen
dim sloupec as string
dim sloup as integer
sloup = 6+y
sloupec = chr(sloup)

Nebo je druhá možnost, asi takto:

activecell.offset(6+y,3+x).value = z

6 je tak proto, že F je 6. v abecedě. Problém druhého řešení, že když to budeš spouštět, musí být vybraná buňka A1 (tedy ta úplně nahoře), jinak se to celé rozhází, respektive posune.
_________________
Spoléhat na druhé je vždy ponižující, ale nemít nikoho, na něhož byste se mohli spolehnout, je ještě horší.
John Wyndham - Den trifidů
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Ghastly
Orc


Založen: 23. 05. 2004
Příspěvky: 182

PříspěvekZaslal: po červen 26, 2006 5:11 pm    Předmět: Odpovědět s citátem

Super, děkuji moc za radu.
Provizorně jsem to včera vyřešil přetransformováním "označení sloupků" jako hodnoty řádků v jednom sloupku - což už jsem adresovat uměl.
Vím, že je to hooodně "přes hlavu", ale funguje to spolehlivě a já to potřeboval hned Wink

Ale podle tvého způsobu je to samozřejmě daleko lepší, takže k tomu sednu a předělám to.

Tohle
sloup = asc("F") + y
sloupec = chr(sloup)
jsem právě nikde nenašel a to byl ten problém.

Ještě jednou děkuji za pomoc.
_________________
Ghastly, Adept Spolku, tulák a dobrodruh
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Stillwater
Velkej Drak


Založen: 16. 09. 2005
Příspěvky: 1103
Bydliště: The WatchTower of Britain - !!!

PříspěvekZaslal: po červen 26, 2006 5:27 pm    Předmět: Odpovědět s citátem

Ursus napsal:
. A VBA nepochopí, že se chceš posunout o y políček od f.

Svete div se, ale ten ten novej (office 12, 2007) uz jo, pouziva v odkazech totiz relativni pozici vzhledem k aktualni bunce.
_________________
Smrt nad Zlato!!!
Stillwater, necromancer, člen Spolku
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ursus
Titán


Založen: 22. 04. 2004
Příspěvky: 1560
Bydliště: Na tomto světě už nebydlí

PříspěvekZaslal: st červen 28, 2006 8:37 am    Předmět: Odpovědět s citátem

Stillwater napsal:
Ursus napsal:
. A VBA nepochopí, že se chceš posunout o y políček od f.

Svete div se, ale ten ten novej (office 12, 2007) uz jo, pouziva v odkazech totiz relativni pozici vzhledem k aktualni bunce.

Fakt? Že bych ho zkusil? Já všechno pracuji s Office 2000, tak se omlouvám, jsem 100 let za opicema. Napřed jsem to používal kvůli škole (přece jenom bylo lepší mít přesně to, co měli oni), pak škola koupila 2003, ale mě se už nechtělo přeinstalovávat. Moje stařičké 2000 mi vyhovují. Smile

EDIT:
to Ghastly: Vůbec nemáš zač. Jsem rád, že alespoň 1x v životě využiju něco, co jsem se učil 2 roky a z čeho jsem mimo jiné skládal maturitní zkoušku. Very Happy Už jsem myslel, že se s VBA nikdy nesetkám (a to jsem maturoval před měsícem). Smile
_________________
Spoléhat na druhé je vždy ponižující, ale nemít nikoho, na něhož byste se mohli spolehnout, je ještě horší.
John Wyndham - Den trifidů
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra Fórum Spolku -> Diskuze Časy uváděny v GMT + 1 hodina
Strana 1 z 1

Přejdi na:  

Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001 phpBB Group

Chronicles phpBB2 theme by Jakob Persson (http://www.eddingschronicles.com). Stone textures by Patty Herford.