Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  117 118 119 120 121 122 123 124 125   další » ... 289

Mám nové auto. A div sa svete, nieje na ňom všetko lepšie ako na starom (rovnaký model). Teda odpoveď znie : Samozrejme! Vždy môže byť niečo "špatně". Ale pokiaľ nepoviete, čo je zle, ja to hľadať nebudem. Tu máte oba varianty. červený je matica, zelený je normál vzorec. Zodpovedajú Vami požadovaným výsledkom. Tak priložte príklad, nech sa to upraví.

Pre prehľadnosť si nadefinujte 2 Definované názvy:
ROZSAH_DATUM
=OFFSET(List1!$G$2;;;;COUNT(List1!$3:$3))
=POSUN(List1!$G$2;;;;POČET(List1!$3:$3))

a ROZSAH_DAT
=OFFSET(ROZSAH_DATUM;ROW()-2;)
=POSUN(ROZSAH_DATUM;ŘÁDEK()-2;)


Štart nájdite napr (obyčajný vzorec : Enter):
=INDEX(ROZSAH_DATUM;;MATCH(1;ROZSAH_DAT;0))
=INDEX(ROZSAH_DATUM;;POZVYHLEDAT(1;ROZSAH_DAT;0))

End nájdite (maticový vzorec : Ctrl+Shift+Enter):
=INDEX(ROZSAH_DATUM;;MAX(IF(ROZSAH_DAT=1;COLUMN(ROZSAH_DATUM);0))-6)+6
=INDEX(ROZSAH_DATUM;;MAX(KDYŽ(ROZSAH_DAT=1;SLOUPEC(ROZSAH_DATUM);0))-6)+6


Ak sú jedničky vždy za sebou, a tvoria iba jednu oblasť, tak potom (normálny vzorec : Enter)
=D5+COUNTIF(ROZSAH_DAT;1)*7-1

Tak teda ešte raz. Tu máte všetky 3 verzie funkčné. Každá verzia má svoj list aj svoj modul s makrami. Nechajte si len ktorú chcete. Máte tam popis ako sa používajú, pridávajú, upravujú.

K predošlej otázke, ktorá je ale už irelevantná:
Ak sa jedná o F:G (susedné stĺpce), tak to fungovať musí
With .Range("F:G").Resize(R)
.Value = .Value
End With

Ak sa jedná o nesúvislé stĺpce napr. E a G tak treba obdobné makro zopakovať 2x.
With .Range("E:E").Resize(R)
.Value = .Value
End With

With .Range("G:G").Resize(R)
.Value = .Value
End With


Každopádne si vyberte ale verziu, kde nemusíte makro upravovať. Dá sa tam ešte doplniť kontrola nezadania parametrov a pod.

Tu máte príklad, ako by to šlo riešiť. Najväčšia komplikácia je, odkiaľ zobrať a ako poslať makru zoznam stĺpcov na mazanie a zoznam stĺpcov na prevod vzorcov na hodnoty. Určite sa to nebude riešiť kopírovaním rovnakého makra iba so zmenenými stĺpcami pre každé tlačítko zvlášť.

Takže je tu parametrizovaná procedúra ExportList(), kde parameter:

Tlacitko - je "Application.Caller", teda identifikátor tlačítka, ktoré bolo stlačené. Na ktorom riadku sa tlačítko nachádza nieje problém potom zistiť, podľa bunky v ktorej je (TopLeftCell). A aj keď si potom prečítame z A:A podľa toho názov listu, ktorý treba spracovať, je nám to prd platné, keď chcete mať rôzne nastavenia pre rôzne listy.

Vzorce - zadávate v ňom názvy stĺpcov oddelené čiarkami, ktoré chcete previesť na hodnoty, teda napr. "E,G"

Mazat - to isté čo Vzorce, len ide o mazanie hodnôt.

Toto riešenie síce zníži rozsah makier, ale stále vyžaduje zásah do makier, a pridanie nového volajúceho makra a priradenie tohto makra novému tlačítku pri pridaní nového listu do zoznamu.

Lepšie by bolo to riešiť tak, aby ste nemusel do makra vôbec ísť. Ponúka sa pridať do zoznamu vedľa 2 stĺpce, kde bude v bunkách k daným listom uvedené ktoré stĺpce sa majú prevádzať, a v ďalšom stĺpci bude uvedené, ktoré stĺpce sa majú mazať. Makro by si tieto infošky prečítalo samé, a nič by ste nemusel pri pridaní listu v makrách meniť. Len skopírovať tlačítko na nový vyplnený riadok.

Ďalšou možnosťou ako použiť parametrizovanú uni-procedúru by bolo, keby ste mal 1 výberový zoznam a 1 tlačítko. To by volalo procedúru vždy so správnymi parametrami, uvedenými v nastavovacej tabuľke.

Dúfam, že ma chápete. Povedzte, ako to chcete, nech to neprerábam X krát.

Pridal som pre ukážku ako by to mohlo vyzerať listy Seznam2 a 3. Sú nefunkčné, to len pre pochopenie.

Šmarjá, treba si ujasniť pojmy.
1. Na iný list sa odkážete
Worksheets("Meno listu").Range("A1").Value = "Hello World!"
2. Koľko listov sa má naraz kopírovať do iného súboru ?
3. Ovládanie bude teda z nejakého riadiaceho listu ?
4. Raz vravíte o stĺpcoch F a H (tam som sa ja pomýlil a dal F a G), potom vravíte o E a F. Tak ešte raz, ktoré stĺpce ?
5. Zmazať vzorce ??? Čo tým myslíte ? Snáď myslíte prekonvertovať vzorec na jeho výsledok, tak ako je to teraz.
6. Čo znamená zmazať stĺpce N a O? Vymazať ich obsah (ako s Delete), alebo ich odstrániť úplne, teda zvyšok tabuľky sa posunie doľava ?
7. Stĺpce majú hlavičky, alebo akékoľvek iné odsadenie od vrchu listu ? Ak áno, koľko riadkov ?
8. Ktorý stĺpec sa dá použiť na určenie výšky dát ? Alebo je to variabilné ?
9. Ak sa to má hneď uložiť, odkiaľ sa má brať názov súboru a cesta ? Má sa Vás to opýtať na cestu a názov ?
10. Ak pôjdu tie listy samostatne ukladať, tak sa má pýtať na meno a umiestnenie pre každý list zvlášť ?
11. Nereagoval ste na ten príklad so stĺpcom P. Teda ak zmažete/odstránite stĺpce N a O, nie sú na ne náhodou naviazané nejaké vzorce ?
...
Treba aj nad zadaním stráviť nejaký čas...
a priložiť príklad.

Ukážka aj s príkladom, čo sa udeje, ak to nedomyslíte v stĺpci P.

Lebo mu chýba list 0. Písal som Vám to aj na druhom fóre. Budeme ale pokračovať na tomto, je to tu pohodlnejšie.

Nesťahujem, ale ak je to to isté ako
http://www.jaknaoffice.cz/2-forum/?id=5894, tak platí to isté - príloha s chybou.

Skúste použiť vedľa pomocný stĺpec zo vzorcom, a zoraďujte ho od najväčšieho v druhej úrovni :
=IF(I2<0;1000000000;1000000000000000)-ABS(I2)
=KDYŽ(I2<0;1000000000;1000000000000000)-ABS(I2)

Hmm ? Tak zasa jedna logická ... Ako sa môže vybraním druhého ECE prepísať tabuľka ECE danými hodnotami z inej očíslovanej zdrojovej oblasti, keď predsa ak už je ECE zvolená inde, tak nikde inde nesmie byť táto voľba prístupná ?! To isté CCC. Po voľbe nejakej ECE zostane všade dostupná len voľba CCC. Tú vyberiem, a mám doplnené obe horné tbl. A koniec. Lebo žiadna spodná zdrojová už neobsahuje v rozbaľovacom menu nič - nesmie.

EDIT: Urobil by som to asi presne opačne, a to tak, že by sa vyberalo pri horných tabuľkách ECE a CCC (napr. v B1 a E1), ktorá že spodná má byť zdroj.

EDIT: Príklad bez makra v prílohe. Len jednoduchý výberový zoznam, ale tuším, že takéto jednoduché to určite nebude :)

Iba som to vypodmienkoval.

Všetky 3 príklady.

No a v čom bol ten povestný "pudel" zakopaný ?

Myslíte spojiť takto ???=RTD("fxbluelabs.excelrtd";;$B$2;CONCATENATE("t";$A4;"ot"))/86400+25569
Veď iba za Váš vzorec doplňte
/86400+25569
Prípadne vynechajte defacto zbytočnú funkciu CONCATENATE
=RTD("fxbluelabs.excelrtd";;$B$2;"t"&$A4&"ot")/86400+25569
V skratke:
Excelácke počítanie dátumočasu je desatinné číslo od 1.1.1900, a to tak, že počet dní je celá časť čísla, a desatinná je pomerová časť dňa, teda čas - dopočítateľný, keďže vieme koľko hodín, minút, sekúnd má deň.

Unixový dátumočas je celé číslo, vyjadrujúce počet sekúnd. Takže na ubehnuté dni a ich časti to prepočítame delením číslom 86400 (počet sekúnd za deň 60 * 60 * 24). Lenže Unix počíta až od 1.1.1970, preto k tomu pripočítame rozdiel v dňoch od počítania Excelu a to +25569 alebo +DATE(1970;1;1)
+DATUM(1970;1;1)


Na tú bunku nastavte Vlastný formát, tak ako Vám písal hneď v prvom príspevku Stalker.
V SK/EN Office je to
yyyy.mm.dd h:mm:ss
V CZ Office je to
rrrr.mm.dd h:mm:ss
prípadne dajte hh namiesto h, podľa toho či má byť čas 8:30:25 alebo 08:30:25.

To je Unixový dátumový systém. Musíte ho previesť do Excelovského.
=A1/86400+25569
to A1 je Vaša hodnota, alebo pôvodný vzorec. Bunku správne naformátovať.


Strana:  1 ... « předchozí  117 118 119 120 121 122 123 124 125   další » ... 289

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

vyhledání obsahu buňky

vfort • 18.7. 11:22

Názvy z řádků do sloupců Power Query

Alfan • 18.7. 10:01

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35