Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  268 269 270 271 272 273 274 275 276   další » ... 302

=PROPER(B36)

Určite na to potrebujete makro ? Tu máte vzorec, keď prídem urobím Vám aj to makro.

EDIT:
Makro, ak tomu nebudete rozumieť, rozsekám Vám to na drobné :
Sub Tlačidlo1_Kliknúť()
With Worksheets("H")
If Not IsError(Application.Match(.Cells(3, 3).Value, Worksheets("H2").Columns(WorksheetFunction.Match(.Cells(2, 3).Value, Worksheets("H2").Cells(1, 1).Resize(1, 6).Value, 0)), 0)) Then MsgBox ("Číslo sa nachádza v zadanej oblasti.")
End With
End Sub

Toto Vám bude brať v úvahu iba zvolenú oblasť, nastavíte si veľkosť písma pre väčšiu, menšiu a rovnú hodnotu, vysporiada sa to aj s kopírovaním viac buniek naraz (aj cez hranicu oblasti), ignoruje "" a text, mení všetko naraz.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oblast As Range, Bunka As Range, ZmenitV As Range, ZmenitM As Range, ZmenitN As Range
Const VACSIE = 12
Const MENSIE = 8
Const ROVNE = 10
Const HRANICA = 10
Set Oblast = Range("A1:C10")
On Error Resume Next
For Each Bunka In Target
If Union(Oblast, Bunka).Address = Oblast.Address And Bunka <> "" And IsNumeric(Bunka) Then
Select Case True
Case Bunka.Value > HRANICA: If ZmenitV Is Nothing Then Set ZmenitV = Bunka Else Set ZmenitV = Union(ZmenitV, Bunka)
Case Bunka.Value < HRANICA: If ZmenitM Is Nothing Then Set ZmenitM = Bunka Else Set ZmenitM = Union(ZmenitM, Bunka)
Case Bunka.Value = HRANICA: If ZmenitN Is Nothing Then Set ZmenitN = Bunka Else Set ZmenitN = Union(ZmenitN, Bunka)
End Select
End If
Next Bunka
ZmenitV.Font.Size = VACSIE
ZmenitM.Font.Size = MENSIE
ZmenitN.Font.Size = ROVNE
On Error GoTo 0
End Sub

Vo Win by to mohlo ísť zmeniť takto (popis na Win 8.1.1):
- Štart, napíšeme "zmeniť formát" a prvá nájdená položka je "Zmeniť formát dátumu, času alebo čísiel", otvoríme.
- Tlačítko "Ďalšie nastavenia"
- Zmeníme "Oddeľovač desatinných miest" na "." a "Oddeľovač v zoznamoch" na ",".
Ja to skúšať nejdem, ale kto chce ...
Otázka je, či to bude akceptovať Office čo je tak 50/50.

@lubo: pravda, na to som nepomyslel. Vovka dal správne riešenie.

Napr.
Počíta s nerovnakým počtom riadkov v A a B, eliminuje zápis prázdneho riadku (ak niesú data), zápis robí naraz a bez úvodzoviek na začiatku a konci, ako oddeľovač som použil ";", desatinné čísla vloží s "," (teda aspoň u mňa).
PS: to vyhľadanie posledného riadku by som riešil asi cez FIND metódu, nie takto, to som si len pracovne rýchlo urobil a nechal tam.

Alebo
Cells(1, 4) = Cells(1, 1).Text

Ja by som to urobil takto, s ochranou pred chybou napr. pri vymazaní bunky, s dynamickým zoznamom, s automatickým načítaním listov a s kontrolou existencie hodnoty v zozname.

Ak by ste chcel načítať plnú tabuľku dát z ext súboru, tak by som doporučil toto.
Považujme teda D6 za odkaz na ľavú-hornú bunku dát v zošitoch. Makro sa spustí pri zmene mesiaca alebo roku. Berie údaj o adresári so zošitmi z bunky F41.

A ak by ste mala záujem o to makro, tak tu je. Kopíruje celé polia naraz, je to veľmi rýchle. Nevšíma si iba list s názvom "Spolu", ale ak chcete aby si nevšímal aj iné listy, tak doplním do makra ešte jednu funkciu. Pracuje iba s hodnotami, a bez medzier. Aktualizácia dát prebehne kliknutím na tlačítko Aktualizovať. Jednoduché.
PS: Ale raz sa tie SQL budem musieť naučiť 5

Takto ?

Ak sa Vám črtá nejaké riešenie, mám sa tomu ešte vôbec venovať? Nemám totiž v týchto dňoch vôbec čas, a od vtedy čo som postol návrh som okolo toho ani nešiel.

Takto je to tiež urobené tak, aby na každej brigáde boli dostupné iba mená, ktoré sú reálne dostupné podľa nastavenia pri každom mene, že kedy kto môže. Funguje aj upozorňovanie na to, ak už niekto z validných mien je v daný deň na inej brigáde. Všetko OK, do momentu, keď si to niekto rozmyslí, zavolá Vám, že v nejaký deň nemôže, vy ho pri jeho mene odškrtnete na daný deň, samozrejme sa aktualizujú zoznamy dostupnosti ľudí, a nastane pohroma, pretože v tých listoch kde figuroval ako dostupný sa všetko posunie. Čiže ak škrtneme prvého dostupného na nejaký deň, tak zaškrtávacie políčka v listoch brigád ostanú neposunuté = budú ukazovať na iné meno. Nejdem to teraz skúšať, ale myslím, že zaškrtnutie CB nevyvolá OnChange. Takže ďalší problém. Rozbalovacie zoznamy to v tomto stave nevyriešia, dynamicky nevymaže totiž neplatnú hodnotu.
Neviem, budem si to musieť celé znovu premyslieť, ale už sa mi s tým prestáva chcieť piplať... no uvidíme.

To bude podstatne zložitejšie. Ide o to, že sa musí kontrolovať, ktorí ľudia sú na aký dátum dostupní. Ďalej sa musí kontrolovať či sú títo dostupní ľudia už v niektorom liste (neznámy počet aj názvy) zapísaný na brigádu, okrem listu samotného v ktorom práve ste. A v jeden deň môže byť viac brigád, teda sa nesmie zo zoznamu dostupných ľudí prihlásený na jednu brigádu vymazať, lebo môže byť aj na inú prihlásený v ten istý deň. Najjednoduchšie by to bolo asi makrom celé riešiť. Zatiaľ sa snažím čo najviac vykryť vzorcami, ale prestáva sa mi to pomaly páčiť. Práve riešim tú kontrolu v iných zošitoch.
Bez kombinácie makro-vzorec sa to neobíde. Aspoň zisťovanie listov musí urobiť makro, a vytváranie nových listov brigád tiež.

EDIT: Moja prvá rozpracovaná (!) verzia.

COUNTA nieje vhodný. Započíta totiž do rozsahu aj vzorec vracajúci "", a to nieje vždy vhodné. Preto používam buď použitý výpočet COLUMNS(3:3)-COUNTBLANK(3:3) alebo COUNTIF(A:A;"<>"&"").

Nepočítate s tým, že by užívateľ mohol dopísať nejaký údaj do riadkov nad tabuľkou. Takže tam nemusí byť práve 1 voľný riadok na pripočítanie. Z rovnakého dôvodu nemôžete použiť spomínaný Suma(H:H).

Ďalej som sa vyhýbal INDIRECT. Pôvodne som sa chcel vyhnúť aj OFFSET, to sa mi žiaľ nepodarilo.

Definované názvy som nepoužil, z dôvodu (ne)fungovania na tabletoch. Na mojom dostanem chybu #NAME. Inak sú samozrejme Názvy podstatným zjednodušením.

Netuším, prečo má Strikeman prvú položku prázdnu, ak sa tam budú také vyskytovať, je to ďalší problém.

Dobrý nápad je aj korekcia počtu zrátavaných stĺpcov keď je <3 dátových, inak to bude hádzať chybu.

Interpretácia riešenia problému vzorcom vždy závisí na drobnostiach. A zrovna zisťovanie poslednej zapísanej položky (stĺpec/riadok) vzorcom je ukážkový príklad.

Uvidíme čo napíše Strikeman. Nejaké upresnenia umiestnenia súčtov, či spôsobu zadávania dát by neboli na škodu.

PS: Ja inak milujem krátke vzorce, pretože dlhé nie sú User Friendly, ale ťažko sa nimi rieši problém komplexne s rôznymi možnými eventualitami.

EDIT:
@Opičák : No prosím, ďalšia správna poznámka, že každý tovar môže mať posledné 3 mesiace iné. Ďalšia komplikácia a ďalšie varenie z vody. Aby sme z vody nevarili potrebujeme odozvu od zadávateľa.


Strana:  1 ... « předchozí  268 269 270 271 272 273 274 275 276   další » ... 302

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje