Pozrite sa na makro v Module2 vo Vami uvedenom súbore, a na makro v Module1 v tom mojom. Nájdite 30 rozdielov
Dosť srandy. Uvidím, možno Vám na to pozriem, ale nejako mi to nejde do hlavy. Asi sa na data zle pozerám, ale ako ste vypočítali počet 21 ks pre DILNA 1 položku M52 (DESTICKY JINE)?
Pre túto dielňu sú tam práce:
A-1,01
B-8,05
D-6,03 (položka M52 obsahuje 3 ks)
D-1,01
Teda výdajka bude 4x3 = 12 ks.
Keď teda môže byť nejaký materiál vo viacerých prácach, je potrebné na výdajku uviesť iba súčet tohto materiálu, bez ohľadu na prácu a Spec ? Iba s ohľadom na dielňu, tak už si matroš rozoberú, kto koľko potrebuje. Dobre som to pochopil?
Ďalej, môže nastať situácia, keď v OHL bude napr. DILNA 1 aj pomedzi inými dielňami?
Môže sa použiť ten filter v OHL, alebo je to len pre Vás, a už tieto "zdrojové" údaje v OHL budú filtrované pre tú výdajku ?
Uvidíme, no ... povedal slepý...
Áno cez Google si takmer vždy nájdem čo potrebujem, ale Vovka má pravdu. On nevraví o riešeniach, ale o popise parametru. A to MUSÍ byť implementované v programe správne. A nieje. Každý PC nieje na nete. A takých vecí je viac nielen v nápovede. MATCH má popis posledného parametru "Typ_zhody" - je jasné čo to je, ale VLOOKUP má ten istý posledný parameter, ktorý nastavuje tiež typ zhody nazvaný "vyhľadávanie rozsahu" ("Range_lookup"), a to je aspoň podľa mňa úplný nezmysel. Tieto veci by mali byť pomenované správne a výstižne. Nápovedu používam minimálne, ale zase som stále na nete, a ak zadám do googlu "excel vlookup msdn", hneď prvý odkaz mi napovie, ale som na nete, niekto nemusí. Riešenie nejakej úlohy je vec iná. To si nájde človek napr. tu
Z tohto
Fero§1,Mišo,§3§5Jano§4,§2Juro
urobí toto
Fero,Mišo,Jano,Juro
tento vzorec
SK
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1;"§1";"");"§2";"");"§3";"");"§4";"");"§5";"")
CZ
=DOSADIT(DOSADIT(DOSADIT(DOSADIT(DOSADIT(A1;"§1";"");"§2";"");"§3";"");"§4";"");"§5";"")
No to teda určite nieje. Toto je tá téma
http://wall.cz/index.php?m=topic&id=27016
a toto tá príloha
http://wall.cz/upload/postatt/27022_objednavka.rar
V tom súbore objednavka.xlsm nevidím jediný vzorec ani makro. Museli ste sa pomýliť. Len som chcel vedieť ako sme to robili minule. Ale niečo sa mi marí, že cez opakovaný AdwancedFilter... Nože pohľadajte ešte funkčnú minulú verziu.
Ja to riešenie nemôžem nájsť, možno to tu už nemám, neviem, môžete ho pls priložiť, aby sme sa pozreli či sa dá len nejako upraviť?
Ale veď toto som Vám už robil. Dal by som ruku do ohňa, že buď tu na fóre alebo na inom som Vám toto už robil.
Urobte to, čo Vám radí eLCHa.
riadok
Dim appWD As Word.Application
nahradte
Dim appWD As Object
a riadok
Set appWD = CreateObject("Word.Application.8")
nahradte
Set appWD = CreateObject("Word.Application")
Mne to normálne funguje aj bez referencie.
Urobil som Vám teda ešte iné, ale to, že je to podľa Vás zložité, s tým nič neurobíte, jednoduché riešenie nieje.
Do B1:
=MID(A1;FIND("\Rev.";A1)+5;FIND(" ";A1;FIND("\Rev.";A1)+5)-(FIND("\Rev.";A1)+5))
=ČÁST(A1;NAJÍT("\Rev.";A1)+5;NAJÍT(" ";A1;NAJÍT("\Rev.";A1)+5)-(NAJÍT("\Rev.";A1)+5))
alebo
=LEFT(REPLACE(A1;1;FIND("\Rev.";A1)+4;"");FIND(" ";REPLACE(A1;1;FIND("\Rev.";A1)+4;""))-1)
=ZLEVA(NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;"");NAJÍT(" ";NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;""))-1)
Do C1:
=TRIM(MID(A1;FIND(" ";A1;FIND("\Rev.";A1)+5)+1;FIND("-";A1;FIND(" ";A1;FIND("\Rev.";A1)+5)+1)-(FIND(" ";A1;FIND("\Rev.";A1)+5)+1)))
=PROČISTIT(ČÁST(A1;NAJÍT(" ";A1;NAJÍT("\Rev.";A1)+5)+1;NAJÍT("-";A1;NAJÍT(" ";A1;NAJÍT("\Rev.";A1)+5)+1)-(NAJÍT(" ";A1;NAJÍT("\Rev.";A1)+5)+1)))
alebo
=TRIM(LEFT(REPLACE(REPLACE(A1;1;FIND("\Rev.";A1)+4;"");1;FIND(" ";REPLACE(A1;1;FIND("\Rev.";A1)+4;""));"");FIND("-";REPLACE(REPLACE(A1;1;FIND("\Rev.";A1)+4;"");1;FIND(" ";REPLACE(A1;1;FIND("\Rev.";A1)+4;""));""))-1))
=PROČISTIT(ZLEVA(NAHRADIT(NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;"");1;NAJÍT(" ";NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;""));"");NAJÍT("-";NAHRADIT(NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;"");1;NAJÍT(" ";NAHRADIT(A1;1;NAJÍT("\Rev.";A1)+4;""));""))-1))
Do D1:
=TRIM(MID(A1;FIND("-";A1;FIND("\Rev.";A1)+4)+1;LEN(A1)-FIND("-";A1;FIND("\Rev.";A1)+4)-1-LEN(TRIM(RIGHT(SUBSTITUTE(A1;" ";REPT(" ";LEN(A1)));LEN(A1))))))
=PROČISTIT(ČÁST(A1;NAJÍT("-";A1;NAJÍT("\Rev.";A1)+4)+1;DÉLKA(A1)-NAJÍT("-";A1;NAJÍT("\Rev.";A1)+4)-1-DÉLKA(PROČISTIT(ZPRAVA(DOSADIT(A1;" ";OPAKOVAT(" ";DÉLKA(A1)));DÉLKA(A1))))))
Do E1:
=TRIM(SUBSTITUTE(RIGHT(SUBSTITUTE(A1;" ";REPT(" ";LEN(A1)));LEN(A1));".docx";""))
=PROČISTIT(DOSADIT(ZPRAVA(DOSADIT(A1;" ";OPAKOVAT(" ";DÉLKA(A1)));DÉLKA(A1));".docx";""))
Kombinácií je veľké množstvo. A kde sa to naučiť ? Na to asi neexistuje odpoveď.
-Musíte s tým prichádzať do styku, nestačí iba občas - čiže prax
-Takéto fórum ako toto, je vynikajúci zdroj, sekcia Návody, ale hlavne sekcia Fórum
-Musíte mať snahu a veľa času
-Na základné nalepenie vedomosti je vhodné si prečítať nejakú odbornú literatúru, nemusí to byť hneď kniha "Mistrovství v Microsoft Excel".
-No a samozrejme Google a nejaká tá angličtina
...
A ešte k tomu kopírovaniu. Predtým ako to budete bunku s vzorcom kopírovať, si nastavte všetky adresy zdrojovej bunky, podľa toho kde bude, či treba absolútnu adresu (nebude sa pri kopírovaní meniť $A$1, alebo sa bude meniť iba časť $A1, ako potrebujete), alebo relatívnu (ako teraz A1). Pozor na to. Toto sa musíte naučiť používať.
@bedha: No ja som si ten doplnok otvoril, a nefungovať to bude vysokopravdepodobne len kvôli tým deklaráciám API. Skusmo som si skúsil niektoré zmeniť na x64, ale bude potrebné si preštudovať celý kód, a to sa mi pravdupovediac fakt nechce.
To preto, že ste neurobil to čo sa píše v prvej vete v kóde. Musíte pridať do Excelovského VBA
Microsoft Word 8.0 - to je ale dosť starý názov
V novších verziách, napr v mojej 2013 sa to volá
Microsoft Word 15.0 Object Library
Dôrazne doporučujem použiť na zjednodušenie vzorcov Definovaný názov.
Definovaný názov : "Nazev"
=SUBSTITUTE(REPLACE(Hárok1!$A$1;1;IFERROR(FIND("\Nav.";Hárok1!$A$1);FIND("\Rev.";Hárok1!$A$1))+4;"");".docx";"")
=DOSADIT(NAHRADIT(Hárok1!$A$1;1;CHYBHODN(NAJÍT("\Nav.";Hárok1!$A$1);NAJÍT("\Rev.";Hárok1!$A$1))+4;"");".docx";"")
je nastavený aj na hľadanie "\Nav." aj na "\Rev.". Pozor na meno listu.
Do A1:
G:\OneDrive\Dokumenty\Navrhu\Navrhu 2015\Nav.055 Nějaký text různé délky - nějaký text různé délky a datum 8.11.2015.docx
Do B1:
=LEFT(Nazev;FIND(" ";Nazev)-1)
=ZLEVA(Nazev;NAJÍT(" ";Nazev)-1)
Do C1:
=TRIM(MID(Nazev;LEN(B1)+2;FIND("-";Nazev)-LEN(B1)-2))
=PROČISTIT(ČÁST(Nazev;DÉLKA(B1)+2;NAJÍT("-";Nazev)-DÉLKA(B1)-2))
Do D1:
=TRIM(MID(Nazev;FIND("-";Nazev)+1;LEN(Nazev)-(FIND("-";Nazev)+1+LEN(E1))))
=PROČISTIT(ČÁST(Nazev;NAJÍT("-";Nazev)+1;DÉLKA(Nazev)-(NAJÍT("-";Nazev)+1+DÉLKA(E1))))
Do E1:
=TRIM(RIGHT(SUBSTITUTE(Nazev;" ";REPT(" ";LEN(Nazev)));LEN(Nazev)))
=PROČISTIT(ZPRAVA(DOSADIT(Nazev;" ";OPAKOVAT(" ";DÉLKA(Nazev)));DÉLKA(Nazev)))
Ak nechcete použiť Definovaný názov, tak všetky výskyty slova "Nazev" zamente za to, čo ste mali dať do Definovaného názvu (tentoraz nemusíte názov listu dávať, alebo podľa potreby), teda
SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";"")
DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";"")
podľa potreby zmente absolútne adresovanie $A$1 na relatívne A1.
A vzorce tak budú síce bez Definovaného názvu, ale vážne neprehľadné a ťažko upraviteľné:
Do B1:
=LEFT(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";"");FIND(" ";SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))-1)
=ZLEVA(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";"");NAJÍT(" ";DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))-1)
Do C1:
=TRIM(MID(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";"");LEN(B1)+2;FIND("-";SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))-LEN(B1)-2))
=PROČISTIT(ČÁST(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";"");DÉLKA(B1)+2;NAJÍT("-";DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))-DÉLKA(B1)-2))
Do D1:
=TRIM(MID(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";"");FIND("-";SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))+1;LEN(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))-(FIND("-";SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))+1+LEN(E1))))
=PROČISTIT(ČÁST(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";"");NAJÍT("-";DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))+1;DÉLKA(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))-(NAJÍT("-";DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))+1+DÉLKA(E1))))
Do E1:
=TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";"");" ";REPT(" ";LEN(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))));LEN(SUBSTITUTE(REPLACE($A$1;1;IFERROR(FIND("\Nav.";$A$1);FIND("\Rev.";$A$1))+4;"");".docx";""))))
=PROČISTIT(ZPRAVA(DOSADIT(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";"");" ";OPAKOVAT(" ";DÉLKA(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))));DÉLKA(DOSADIT(NAHRADIT($A$1;1;CHYBHODN(NAJÍT("\Nav.";$A$1);NAJÍT("\Rev.";$A$1))+4;"");".docx";""))))
OT: Eeej, ale teraz sa ako hanbím! To ma nenapadlo. Veď na to si dokážem napísať v Delphi malú apku (stačí TRichEdit, ten vie formátovanie). Dokonca by som to asi zvládol aj v CorelDraw (má VBA), a "pouvažujem" aj nad Excelom
Keďže teraz ste mi už rozsvietil, že sa to dá inde, tak sa asi nechám od detí nabudúce nalomiť.
Samozrejme, že to pri zmene v liste so všetkými odkazmi potom nefunguje. Tie odkazy si musíte najskôr všetky pripraviť, podľa mien všetkých súborov. To vôbec nemusia byť iba čísla. Napr. ako som spomínal, makrom, cez vyhľadávaciu funkciu "dir" prebehnete celý adresár, a urobíte si zoznam všetkých súborov, a vytvoríte si stály, aktívny, automaticky aktualizovaný zoznam hodnôt (pomocou vzorcov vytvorených týmto makrom) zo všetkých súborov. Makro môžete zmazať, ak Vám budú pribúdať ďalšie súbory, tak si ich obdobne dopíšte do tohto listu, analogickými vzorcami. To nieje riešenie na mieru, ale len ukážka.
Potom v pracovnom liste už vyhľadávate medzi hodnotami zo všetkých súborov, ktoré Excel natívne (vzorcami) číta sám. A ako vyhľadávacie kritérium je názov súboru.
PS: To ako vyzerá ten vzorec, je tam iba na ukážku, ako by mal vyzerať. Pri zmene názvu súboru sa nezmení aj odkaz, ktorý už reálne načíta data. To je práve to nerealizovateľné, čo ste chcel.
2 príklady prehodenia stĺpcov označenej oblasti opačne na iný list. Možností je veľa, napr aj použitie Copy a ... . Vyskúšajte, dajte vedieť.
Inak kolegovia majú pravdu, Váš popis je nezrozumiteľný.
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.