< návrat zpět
MS Excel
Téma: Kontrola prvků, podmínek mezi sheety
Zaslal/a papua 26.10.2012 10:23
Ahoj všem,
žádám o vytvoření VBA scriptu za finanční odměnu pro porovnání prvků a kontrolu podmínek.
Uvedu příklad pro dva sheety, kde se bude provádět kontrola. (Může jich být více v jednom workbooku)
Pro pochopení vycházejte z přiloženého excel souboru.
Sheet č.1 nese název A20.P1, kde se nachází seznam
jmén elementů ve sloupci C.
Zde jsou dva typy elementů a to statický (A20.P1.PT1.PET1) a dynamický (A20.P1.PT1.PE1.PET1)
zpravidla u dynamických elem. je definována podmínka, která je přiřazena ve sloupci I a její definice se nachází ve sloupci N.
Pokud ve sloupci N je napsána "podmínka" tak daný název/zvy jmen elementů se nachází v sheetu č.2 A20.P1.Podminky, kde je seznam všech
elemtů s podmínkou.
Kontrola má spočívát v tom, že:
- kontrola zda jméno elementu s podmínkou z sheetu A20.P1 se nachází v A20.P1.Podmínky.
- kontrola samotné podmínky, která je definována ve sloupci N v A20.P1
např: A20.P1.PT1.PE1.PET1 nese podmínku misto.lokace = cesko první část podmínky (misto.lokace) musí odpovídat textu, který je zapsán v sheetu A20.P1.Podminky ve sloupci D
dále pak vyhodnotit v podmínce operátor což u uváděného příkladu je "=" a zkontrolovat v A20.P1.Podminky ve sloupci F.
Ad. Operátory - v podmínce mohou být =, <>, >, < je nutné je vyhodnotit pomocí stringu ROVNO, NEROVNO, VETSI, MENSI a pak kontrolovat zda to odpovídá ve zmiňovaném sloupci F.
Poslední část podmínky (pokud je string) (cesko), zda odpovídá textu v A20.P1.Podminky ve sloupci J.
Může nastat situace, že v poslední části podmínky není string, ale třeba TRUE, FALSE, NULL a číselné hodnotypokud nastane taková situace kontroluje se zápis ve sloupci I v A20.P1.Podminky.
- u kontroly nerozhoduje velikost písmen
V přiloženém souboru se nachází modelové situace. Která by měli danou specifikaci ujasnit =)
Chci podotknout, že názvy sheetu, jména elementů či podmínek nejsou statický dány. Tzn, že kontrolovat pro všechny sheety ve workbooku, kterou nesou koncovku .Podminky
prosím o vytvoření kódu za finanční odměnu,
PS: spěchá to.
Předem děkuji
Petr
Příloha: 10055_testovani_podminek.zip (8kB, staženo 22x)
Milan-D(26.10.2012 18:06)#010063 Vidim, ze se do toho nikdo nehrne. Nerad bych vyfoukl moznost odmeny nejakemu sikulovi v nouzi.
Ja to klidne zbastlim for free. Taky se vyjadrujes velmi jasne, coz nebyva castym zjevem. Presto otazka:
Jakym zpusobem se to ma vyhodnocovat? Nejlepe kdyz bys prilozil priklad jednoho vyhodnoceneho listu. Predpokladam, ze to bude na liste ktery nema v nazvu vyraz "podminky". Nevim v kterem sloupci to chces vyhodnocovat a jakym zpusobem napriklad hlasit neshodu anebo absenci daneho elementu na "podminkovem" listu.
Potrebuju, abys navodil veschny mozne neshody a jak je chces mit vyhodnocene
citovat
Milan-D(27.10.2012 16:53)#010072 Nemam odpovedi na sve otazky, tak jsem to udelal provizorne. Pokud to narazi na neshodu, tak ji napise do prislusneho sloupce.
Jeste bych rad podotkl, ze kdyz jsem kontroloval chovani makra za pomoci vzorcu v liste, tak treba pro vzorec COUNTIF ty tecky v nazvu listu predstavovaly problem, musel jsem ten nazev zavrit do apostrofu. (Mam US verzi 2010). Takze mozna kdyby to slo, tak radeji bych se vyvaroval v nazvu listu tecek, carek, stredniku, vykricniku... a misto toho pouzil pomlcku nebo podtrzitko. Prozatim to makru nevadilo, ale nevis, jake funcionality tam budes dobastlovat v budoucnu. Taky max pocet znaku v nazvu listu je omezeny (31), je dobre drzet v patrnosti
Příloha: 10072_testovani_podminek.zip (18kB, staženo 22x) citovat
papua(29.10.2012 14:48)#010091 Ahoj, Milane,
ještě jednou díky za tvoji snahu!
Co se týče scriptu je super, ale má jeden nedostatek a tím je, že pokud pravá část podmínky je v podobě stringu v našem případě "cesko" tak se kontroluje ve sloupci J, kde je ALIAS a nikoli ve sloupci I - tam se kontrola provádí, jen tehdy pokud je pravá část podmínky číslo či boolin.
Ad vyhodnocování:
- Nejlépe, kdyby se výsledky zapsaly do nějakého textboxu a to pokud:
- by chyběl element s podmínkou na podmínkovém listu
=> v textboxu neco jako (Neshoda elementu A20.P1.PT1.PE1.PET1 v podminkovem listu(Nazev))
- pokud by byla neshoda v podmínce treba u operatoru
=> v teboxu (Neshoda podmínky A20.P1.PT1.PE1.PET1 - OPERATOR v podminkovem listu(Nazev))
děkuju mockrát
citovat
papua(29.10.2012 15:32)#010097 dobre =)
poslal jsem ti PM
citovat
Milan-D(29.10.2012 16:09)#010099 Nic nedoslo, ani spam filtr nic nezachytil
citovat
papua(29.10.2012 16:33)#010101 souhlasím s tim vyhodnocenim na novem liste =)
akorat me zarazi proc to PM nechodi
citovat