Hm - to neni veru prilis mnoho informaci.
Urcite tady nekdo poradi, ale musite rict, co vlasnte potrebujete, protoze vas dotaz vlastne ani moc dotazem neni :D
Jake informace potrebujete mit k dispozici, co budete zadavat a co potrebujete, aby excel spocital?
Tak jsem to zkusil udelat pres vzorce.
Bohuzel jsem nenasel zpusob, jak definovat pozadovanou oblast primo do definice oblasti, takze jsem to musel udelat pres bunky - vytvorit vzorec v bunkach, ktere se pak nasledne dynamicky pretvari do nazvu oblasti.
V oblasti B25:C32 je maticovy vzorec, ktery definuje oblast na zaklade toho, jestli jsou hodnoty v C3:C10 vetsi nez hodnota zapsana v bunce E24 (nelze menit podminku vetsi nez '>').
V oblasti O24:P30 jsou pak vzorce, ktere uz pouzivaji nove vytvorenou oblasti Oblast_data2
Snad je to to, co bylo pozadovano...
Nevim, jestli to chapu uplne spravne, ale pokud chcete do bunky odečíst číslo sloupce, který ovšem chcete zapsat ne cislovkou ale pismenem, jde to.
Do bunky A1 napisete pismeno, napr. 'A' (1. sloupec), potom vzorec: =SLOUPEC(NEPŘÍMÝ.ODKAZ(A1 & 1)) znamena cislo zapsane v bunce A1.
Pokud je v A1 napsane pismeno E, bude hodnota vzorce 5, v pripade G, bude hodnota 7 - s timto vzorcem potom lze tedy pocitat v dalsich vypoctech...
Zkusim taky neco prihodit:
Nikdo si, prosim, neberte nic osobne, jde jen o to, aby byli vsichni spokojeni a aby si porozumeli...
1) To Rombil: kdyz chces poradit - musis taky poradne vysvetlit cely problem a NE JEN cast!!!
Sice je hezke, ze potrebujes definovat nespojitou oblast na zaklade nejake podminky, ale nevime, o jakou podminku jde a co se dal bude s oblasti delat - to bys mel definovat.
Nejlepsi je prilozit aspon nejaky ukazkovy soubor (s aspon fiktivnimi daty, ktera ovsem budou odpovidat (typove: text, cisla, atd...)).
Casto se totiz stava, ze nekdo chce docilit castecnyho cile s tim, ze zbytek si dodela - ale reseni celyho problemu by bylo lepsi udelat uuuplne jinak!
-> Nicmene, to, co jsi chtel (nebo alespon to, co jsi popsal) vystihl Roman v makru, ktere prilozil, protoze oblast, ktera splnuje podminky je pojmenovanou oblasti s nazvem 'xxx', se kterou pak muzes delat vsechno, ne jen scitat - to, ze Roman vlozit priklad =SUM(xxx) neznamena, ze nemuzes pouzit jinou funkci pro tuto oblast...
2) Absolutne chapu Romana a je to castecne to, co uz jsem napsal - Rombile, kdybys nam rekl, co s oblasti potrebujes delat, dalo by se to udelat i pres vzorce, jak psal Roman.
Definuj tvuj konecny cil a pak se da pomoci - jinak se totiz muze stat, ze Roman stravi zbytecne moc casu na tom, aby pochopil neco, co vlastne ani k vyreseni tvyho problemu chapat nepotrebuje...
Snad se na me nebudou odpovidajici v tomto vlakne zlobit, ze se do toho montuju, ale...
Plne souhlasim s resenim, ktere je provedeno pomoci formatu - nicmene jde jen o zobrazeni, takze hodnota 4 se diky formatu zobrazi jako 0004 (ale je to pouze zobrazeni)
Pokud tedy chcete dal pracovat s 0004, musite v dalsich vzorcich hodnotu bunky A1=4 a B1=2 opet (tak jako ve formatu bunky) transformovat na text s urcitym formatem. Chcete-li dostat po slouceni pomoci funkce CONCATENATE toto: 00040002, musite pouzit nasledujici vzorec:
=CONCATENATE(HODNOTA.NA.TEXT(A1;"000#");HODNOTA.NA.TEXT(B1;"000#"))
Mozna jsme si neporozumeli - samozrejme, ze lze ulozit sesit pri zavreni, ale protoze je to v tomto pripade nutnost, tak to muze zpusobit i jiste pozite.
Protoze pokud udelate nejake upravy (makrem je nelze vzit zpet), tak uz nemate tu moznost proste jen sesit zavrit (a protoze neulozite zmeny), tak ho proste jen znovu otevrit...
To je problem, o kterem jsem mluvil.
Pokud chcete tedy ouzit proceduru _Before_Close, musite si byt jisti, ze pred zavrenim uvedete sesit do puvodniho stavu, coz muze byt problem
Zdravim,
jestli je to jeste aktualni, tak jsem s pomoci bratra Googla nasel tohle:
Sub Otevrit_bez_maker()
With Application
.AutomationSecurity = msoAutomationSecurityForceDisable
.Workbooks.Open "c:\Documents and Settings\POKI\Plocha\soubor.xlsm"
End With
End Sub
Zkousel jsem to jedno a vypadalo to, ze to funguje...
asi takto:
Sub Prazdne_radky()
Dim i As Long
Dim Pocet As Long
Pocet = 50
For i = 2 To Pocet * 2 Step 2
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
End Sub
Prave proto, ze je tech druhu hodne, by mely byt v nejake databazi (treba jen specialni list v sesitu excelu) s unikatnim kodem - v takovych pripadech se totiz mnohokrat jednotlive druhy lisi pouze v rozmerech nebo napr. barve a je jen velmi obtizne bez kodu poznat, ktery druh materialu je ten pravy - jednoznacny kod zabrani nedorozumenim...
Obecne - nelze delat temer nic, kdyz nemate data s vnitrni logikou a konzistenci.
Takze NE, toto nepujde, ale z praktickeho hlediska je to stejne (aspon podle me) velmi spatna cesta a je lepsi mit nejako minidatabazi, na kterou jsou veci navazane - viz priloha (vevnitr jakestakec vysvetleni)
Mozna takto...
Mne to funguje normalne, viz priloha...
Asi takto:
cesky excel (a řekl bych, ze i ten slovensky) pouziva jako oddelovac čárku (národní zvyklost), naopak anglicky mluvící země používají tečku.
Problem je, ze když vkladate čísla pomoci VBA, musite v kodu pouzivat tecku (v listu se z tecky to automaticky stane carka - prave kvuli lokalizaci programu)...
hm, muze byt - vzdycky je lepsi popsat cely problem, ne jen cast - muzete vlozit vas soubor a popsat, jak to bude cele fungovat?
Zdravim,
myslim, ze není třeba pouzivat makro - na to staci jednoduchy vzorec za pouziti funkce SKALÁRNÍ.SOUČIN (nebo maticovy vzorec) - v priloze jsem pouzil skalární.součin.
Jestli si myslim spravne, ze ve sloupci C je jednotkova cena a ve sloupcich E-L počet kusu pro jednotlive dny, tak v radku 31 najdete zlute oznacene vzorce, ktere vam spocitaji to, co potrebujete...
Je vzdy lepsi pouzit vzorec nez makro (pokud to ovsem jde...)
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.