Skrytí řádku v Excelu
Dobrý den,
Vás poprosit o radu a Vaši pomoc.
Chtěl bych, aby když v řádku C42:P42 není žádná položka, aby se skryl celí řádek.
Zasílám vzor
Moc Vám všem děkuji za pomoc.
Dobrý den,
Vás poprosit o radu a Vaši pomoc.
Chtěl bych, aby když v řádku C42:P42 není žádná položka, aby se skryl celí řádek.
Zasílám vzor
Moc Vám všem děkuji za pomoc.
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"
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?
Nehledě na to, že Vedle máš požadavek na skrytí pouze části řádku => což samozřejmě nelze !
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
2
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á?
Každý nemůže byt tak chytrý.
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
OK, popíš mi, čo robí ktorý riadok toho, čo si napísal. Keď vieš, čo si napísal, budeš vedieť aj to, prečo ti to nemôže fungovať...
A pekne riadok po riadku...
Tak poď
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
Tak ešte raz:
Popíš mi, čo robí ktorý riadok toho, čo si napísal. Keď vieš, čo si napísal, budeš vedieť aj to, prečo ti to nemôže fungovať...
A pekne riadok po riadku...
Tak poď
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
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ý jeden riadok. Od prvého až po posledný
Tak to se přiznám, že to nevím jak to máš na mysli?
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?
To je, ale co to znamená nevím.
Já se přiznám.
No vidíš. A to som práve chcel povedať.
To je akoby som napísal 100 náhodných písmenok a myslel si, že som tým povedal niečo po anglicky...
A preto, kým to nebudeš vedieť, nemáš šancu aby si niečo dal dokopy.
A můžeš mi to prosím upravit?
Moc ti děkuji.
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.
Tak ti i přesto děkuji.
Pekné od teba.
Tak ono nemá cenu něco programovat, když si požadavky tazatele navzájem odporují.
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.
2) ...dyť je to jedno
Ak príde ktorýkoľvek z nich so zmysluplným dotazom, tož poradíme, no neeee (jak říkává Libuna)?
Bol tu už aj ťažší prípad, ale už si nespomínam na meno a nestojí mi za námahu pátrať po ňom v histórii
ad Edit: Nooo, tak fajn!
Nooo spokojnosť predpokladám na 15 min, keďže nemá zapracované spätné skrývanie po výmaze položiek, či už po jednom, alebo kompletne.
A tiež si ešte bude musieť pozrieť funkciu VLOOKUP. Jinak si zaděláváš na průser, Mati...
Okrem iného... ďalej som to nerozoberal...