loading...
Předmět Autor Datum
používám podmíněné formátování, podmínka "určit buňky k formátování podle vzorce" a vyhodnocuju délk…
lední brtník 28.06.2020 12:44
lední brtník
Můžeš nám prozradit, proč máš neustálou obsesi skrývat řádky? Víš jak bude vypadat layout stránky (f…
Siki83 28.06.2020 13:04
Siki83
Makro mám toto a částečně funguje: Private Sub Worksheet_Change(ByVal Target As Range) Set aCell =…
Mati 28.06.2020 14:10
Mati
Tu samou kravinu si vlepil na Wall, ale co tak se vyjádřit k otázkám ?! Můžeš nám prozradit, proč m…
Siki83 28.06.2020 15:54
Siki83
Priateľu, opätovne konštatujem, že ani ty sám nevieš, čo chceš. Preto som ti minule radil, aby si sa…
robert13 28.06.2020 13:46
robert13
Každý nemůže byt tak chytrý.
Mati 28.06.2020 14:12
Mati
Mati, počúvaj, zamysli sa, ponor sa do hĺbky svojej duše. Zvládol by si to, ale to by si najprv ty s…
robert13 28.06.2020 14:18
robert13
Třeba nějak tak? Bohužel ani to mi nějak nejde. Private Sub Worksheet_Change(ByVal Target As Range)…
Mati 28.06.2020 15:24
Mati
OK, popíš mi, čo robí ktorý riadok toho, čo si napísal. Keď vieš, čo si napísal, budeš vedieť aj to,…
robert13 28.06.2020 15:43
robert13
V příloze posílám vzor. 1 Řádek 5 je skrytý u vzoru je skrytý 2 Řádek 6 by se měl skrýt což nejde…
Mati 28.06.2020 15:54
Mati
Tak ešte raz: Popíš mi, čo robí ktorý riadok toho, čo si napísal. Keď vieš, čo si napísal, budeš ved…
robert13 28.06.2020 15:55
robert13
V příloze posílám vzor. Private Sub Worksheet_Change(ByVal Target As Range) Set aCell = Range("A1")…
Mati 28.06.2020 16:13
Mati
Ja sa nepýtam, čo by si rád, aby ktorý riadok robil, ale čo ten ktorý príkaz znamená. A prosím každý…
robert13 28.06.2020 16:24
robert13
Tak to se přiznám, že to nevím jak to máš na mysli?
Mati 28.06.2020 16:27
Mati
Napíš, čo znamená: Private Sub Worksheet_Change(ByVal Target As Range) Napíš, čo znamená: Set aCell…
robert13 28.06.2020 16:32
robert13
To je, ale co to znamená nevím. Já se přiznám.
Mati 28.06.2020 16:45
Mati
No vidíš. A to som práve chcel povedať. To je akoby som napísal 100 náhodných písmenok a myslel si,…
robert13 28.06.2020 16:50
robert13
A můžeš mi to prosím upravit? Moc ti děkuji.
Mati 28.06.2020 16:54
Mati
Nehnevaj sa, nie. Nemá význam programovať to, čo dosiahneš pravým klikom na označené riadky a povelo…
robert13 28.06.2020 16:59
robert13
Tak ti i přesto děkuji.
Mati 28.06.2020 17:49
Mati
Pekné od teba. :beer:
robert13 28.06.2020 17:53
robert13
Tak ono nemá cenu něco programovat, když si požadavky tazatele navzájem odporují. :puff:
Siki83 28.06.2020 17:53
Siki83
No ale veď my vieme, čo od toho očakával, len on v tom nemal jasno... Dovtedy odkrývať po jednom voľ…
robert13 28.06.2020 17:55
robert13
Ale hlavně celej tenhle požadavek je zbytečná volovina a potencionální líhniště problému. Při tomto…
Siki83 28.06.2020 18:08
Siki83
1 Áno, to je jedna z vecí, ktoré by mohol užívateľ navyvádzať. Alebo napríklad také dodatočné vyhode…
robert13 28.06.2020 18:20
robert13
1) právě není to jen o skrývání řádků, ale i o ošetření různých vyjímek, a to je to co tazateli nedo…
Siki83 28.06.2020 18:32
Siki83
2) ...dyť je to jedno :-D;-):beer: Ak príde ktorýkoľvek z nich so zmysluplným dotazom, tož poradíme,…
robert13 28.06.2020 18:38
robert13
Nooo spokojnosť predpokladám na 15 min, keďže nemá zapracované spätné skrývanie po výmaze položiek,… poslední
robert13 28.06.2020 18:52
robert13

používám podmíněné formátování, podmínka "určit buňky k formátování podle vzorce" a vyhodnocuju délku obsahu buňky=0
výsledkem formátování je bílá barva textu.
(při obarvování jediné buňky jde taky použít pravidlo "formátovat pouze buňky obsahující"=0)

vzhledem k omezení novějších verzí excelu, kdy používá natvrdo bílou barvu pozadí a nepřebírá systémové barvy, doporučuju v takovém případě mimo tisknutelnou oblast dopsat upozornění "zde jsou data, nemazat"

Makro mám toto a částečně funguje:

Private Sub Worksheet_Change(ByVal Target As Range)
Set aCell = Range("A26")
If Not Intersect(Target, aCell) Is Nothing Then
Range("B28:AS36").EntireRow.Hidden = aCell = "1"
End If
End Sub

když do buňky A26 dám hodnotu 1 skryje všechny řádky.
POTŘEBUJI, ABY KDYŽ JE JEDEN PLNY ABY SE ZOBRAZIL DALŠÍ ŘÁDEK.

Když list zamknu nejde to.

Snad se někdo najde a poradí mi.

Předem všem moc Děkuji

Tu samou kravinu si vlepil na Wall, ale co tak se vyjádřit k otázkám ?!

Můžeš nám prozradit, proč máš neustálou obsesi skrývat řádky?
Víš jak bude vypadat layout stránky (faktury) obsahující pouze např. 2 řádky?

Musím souhlasit s Robertem, nemáš absolutní tušení co vlastně děláš, ten poslední kód je toho důkazem.
Proč se pouštíš do tvorby notabene faktury?!

Pokud bych měl na něco dát razítko, či název své firmy, tak by to mělo mít nějakou "štábní" kulturu. A né aby to vypadalo, jako něco co vytvořil uprchlík z jedličkova ústavu.
Další věcí je jednoduchost a maximální blbuvzdornost při obsluze. Co když se Ti podaří skrýt řádek, který bude obsahovat částku za nějakou položku, která bude i přes skrytí zahrnuta do konečné ceny?!
Faktura taky musí obstát při kontrole FÚ!

Priateľu, opätovne konštatujem, že ani ty sám nevieš, čo chceš. Preto som ti minule radil, aby si sa vykašlal na predstavu, že budeš tvoriť nejaké makrá. Jednak nevieš ani zrozumiteľne vysvetliť, čo chceš a jednak ani nemáš analytické myslenie, aby si premyslel nejaký algoritmus riešenia.
Tieto dva tvoje citáty sú vo vzájomnom protiklade:

1

JENOMŽE TO SKRIJE VŠECHNY ŘÁDKY.
POTŘEBUJI, ABY KDYŽ JE JEDEN PLNY ABY SE ZOBRAZIL DALŠÍ ŘÁDEK.

2

Chtěl bych aby když v řádku C42:P42 není žádná položka, aby se skryl.

Samozrejme, logické je, že v prípade, že sa jeden riadok zaplní, aby sa nasledujúci odkryl pre možnosť zadania ďalšej položky. Nezdá sa Ti?

Ideálne riešenie pre teba je vyhotoviť faktúru a keď si s ňou skončil, označíš si celé prázdne riadky, klikneš pravým myšítkom a zvolíš "skryť".
Týmto riešením môžeš označiť dotaz za vyriešený.

Ak by si si predsalen nedal pokoj, zaveď si tam tlačidlo "Vytlačiť", ktoré v prípade, že budeš mať faktúru skompletovanú, skryje nevyplnené riadky, vytlačí ju a opätovne rozbalí všetky riadky.
Obávam sa, že aj takto zjednodušené (a pritom funkčne plne vyhovujúce riešenie) riešenie zmrvíš, lebo nemáš snahu rozmýšľať, iba preberať hotové makrá. Žiaľ... Ba čo viac, nemáš snahu ani o poznanie základov Excelu (viď hárok "Položky" tojej prílohy), ako si potom môžeš myslieť, že budeš zvládať makrá?

Mati, počúvaj, zamysli sa, ponor sa do hĺbky svojej duše. Zvládol by si to, ale to by si najprv ty sám musel chcieť. Stále to vyzerá tak, že síce chceš, aby ti to tak fungovalo, ale nemáš najmenšiu snahu pre to niečo urobiť. Len skúšať niečo náhodne stiahnuté a dať si to niekomu doopravovať. Celú dobu, čo sa tu objavuješ (či už pod týmto nickom alebo inými), nevidno žiadny pokrok a z toho vyplýva aj môj chladný postoj k nejakej snahe poslať ti riešenie. Ak sa ti páči nejaká zautomatizovaná činnosť a chceš sám dokázať vytvoriť niečo také, musíš postupovať od základov. A postúpiť ku zložitejšiemu, až keď si pochopil to jednoduchšie...A ak na to nemáš trpezlivosť, tak tož smola, ale potom si nájdi iné hobby.

Třeba nějak tak?
Bohužel ani to mi nějak nejde.

Private Sub Worksheet_Change(ByVal Target As Range)
Set aCell = Range("A1")
Set aCell = Range("A2")
Set aCell = Range("A3")
Set aCell = Range("A4")
Set aCell = Range("A5")

If Not Intersect(Target, aCell) Is Nothing Then
Range("B28:AR28").EntireRow.Hidden = aCell = "1"
Range("B30:AR30").EntireRow.Hidden = aCell = "2"
Range("B32:AR32").EntireRow.Hidden = aCell = "3"
Range("B34:AR34").EntireRow.Hidden = aCell = "4"
Range("B36:AR36").EntireRow.Hidden = aCell = "5"
End If
End Sub

V příloze posílám vzor.

1 Řádek 5 je skrytý u vzoru je skrytý
2 Řádek 6 by se měl skrýt což nejde

Private Sub Worksheet_Change(ByVal Target As Range)
Set aCell = Range("A1")

If Not Intersect(Target, aCell) Is Nothing Then
Range("5:5").EntireRow.Hidden = aCell = "1"
Range("6:6").EntireRow.Hidden = aCell = "2"
Range("7:7").EntireRow.Hidden = aCell = "3"
Range("8:8").EntireRow.Hidden = aCell = "4"
End If
End Sub

V příloze posílám vzor.

Private Sub Worksheet_Change(ByVal Target As Range)
Set aCell = Range("A1")
Set aCell = Range("A2")
Set aCell = Range("A3")
Set aCell = Range("A4") což nejde

If Not Intersect(Target, aCell) Is Nothing Then
Range("5:5").EntireRow.Hidden = aCell = "1" SKRYJE SE ŘÁDEK 5 KDYŽ ZADÁM HODNOTU 1 DO BUŇKY A1
Range("6:6").EntireRow.Hidden = aCell = "2" SKRYJE SE ŘÁDEK 6 KDYŽ ZADÁM HODNOTU 2 DO BUŇKY A2
Range("7:7").EntireRow.Hidden = aCell = "3" SKRYJE SE ŘÁDEK 7 KDYŽ ZADÁM HODNOTU 3 DO BUŇKY A3
Range("8:8").EntireRow.Hidden = aCell = "4" SKRYJE SE ŘÁDEK 8 KDYŽ ZADÁM HODNOTU 4 DO BUŇKY A4
End If
End Sub

U BUŇKY A1 ZADÁM HODNOTU 1 TAK SE SKRYJE ŘÁDEK 5.
U BUŇKY A2 ZADÁM HODNOTU 2 TAK by SE měl SKRYT ŘÁDEK 6 COŽ NEJDE

Napíš, čo znamená: Private Sub Worksheet_Change(ByVal Target As Range)
Napíš, čo znamená: Set aCell = Range("A1")
Napíš, čo znamená: Set aCell = Range("A2")
Napíš, čo znamená: Set aCell = Range("A3")
Napíš, čo znamená: Set aCell = Range("A4")

Napíš, čo znamená: If Not Intersect(Target, aCell) Is Nothing Then
Napíš, čo znamená: Range("5:5").EntireRow.Hidden = aCell = "1"
Napíš, čo znamená: Range("6:6").EntireRow.Hidden = aCell = "2"
Napíš, čo znamená: Range("7:7").EntireRow.Hidden = aCell = "3"
Napíš, čo znamená: Range("8:8").EntireRow.Hidden = aCell = "4"
Napíš, čo znamená: End If
Napíš, čo znamená: End Sub

Je to dosť zrozumiteľné, čo tým chcem?

Nehnevaj sa, nie. Nemá význam programovať to, čo dosiahneš pravým klikom na označené riadky a povelom na skrytie po tom, čo je faktúra vyplnená.
Program totiž okrem toho, aby robil ten hlavný účel, musí byť odolný voči tomu, čo všetko by s ním mohol užívateľ navyvádzať... A to je kapánek viac práce, než si myslíš.
To bude tvoj ďalší level vzdelávania hneď po tom, ako sa naučíš základy.

No ale veď my vieme, čo od toho očakával, len on v tom nemal jasno...
Dovtedy odkrývať po jednom voľnom nasledujúcom riadku, kým nie je faktúra hotová. Ak je hotová, skryť všetky zostávajúce prázdne riadky. Ale že kedy je faktúra hotová, program nemôže vedieť, preto by tam tak či tak musel mať nejaký iný ovládací prvok... A keď už tam ten prvok musí byť, nemá význam to riešiť po riadku... A ako si už písal, patrilo by sa riešiť i layout, v závislosti od množstva položiek...

Ale hlavně celej tenhle požadavek je zbytečná volovina a potencionální líhniště problému.
Při tomto způsobu práce by musel být uživatel informován, že dosáhnul maximálního počtu položek.
Už vidím uživatele jak začne plnit fakturu - řádky se jednotlivě zobrazují a najednou konec.

Tak nějak se nemůžu zbavit dojmu, že se nám tu reinkarnoval Etkin, Prokop, Pistackova .....

Ale záhada hlavolamu pokračuje na wall, sem zvědavej, kam se tohle zadání ještě posune.

1 Áno, to je jedna z vecí, ktoré by mohol užívateľ navyvádzať. Alebo napríklad také dodatočné vyhodenie či vloženie položky niekam do stredu, za súčasnej požiadavky zachovania pôvodného poradia atď. Síce nič nie je neriešiteľné ale už sa to peeekne nabaľuje...
2 Prokop to asi nebude, ten bol tuším imobilný invalid, jedine že by mu dovolili home office... A Etkin s Pištáčkovou sa nevedel asi stotožniť so svojim pohlavím. LGBTI to porieši...

1) právě není to jen o skrývání řádků, ale i o ošetření různých vyjímek, a to je to co tazateli nedochází.
2) Fakt se nemůžu zbavit dojmu, že se stále jedná o tu samou osobu, možná nám to někdo z adminů potvrdí/vyvrátí.

Edit: Tak vedle již dostal řešení se kterým je zdá se spokojený, otázkou je jak dlouho.

Zpět do poradny Odpovědět na původní otázku Nahoru

loading...