< návrat zpět

MS Excel


Téma: Formulár na rezerváciu služobného auta rss

Zaslal/a 17.2.2019 12:20

Dobrý deň.
Vytváram formulár na rezerváciu služobného auta a dostal som sa do bodu, kedy si už sám neporadím. Popis je v samostatnom hárku v prílohe. Funguje mi to do bodu vymazania riadku v prípade zrušenia rezervácie, resp. chyby. Ak totiž v ZOZNAME ŽIADOSTÍ vymažem riadok, ktorý nie je posledný a pridám ďalšiu žiadosť do prvého prázdneho riadku a zapíše sa mi do toho vymazaného ( čo je v poriadku ), vymaže mi to v riadku pod tým hodnoty niektorých buniek ( v prílohe hárok REZERVAČNÝ FORMULÁR v riadku 25. Ukáže sa to pri POTVRDENÍ POŽIADAVKY v bunke I12, stačí kliknúť.
V ďalšom kroku by som chcel, aby sa mi pri schválení žiadosti v stĺpci J skopírovali údaje z príslušného riadku do tabuľky SCHVÁLENÉ ŽIADOSTI vedľa k príslušnému dátumu ( začiatok cesty k dátumu začiatku, koniec cesty k dátumu konca a do dní medzi tým skopírovať údaje o vodičovi a ceste v stĺpcoch P, Q a R ) a s tým si už neviem rady, tak prosím o pomoc.
Niektoré makrá v súbore, hlavne PRIDAJ_DO_ZOZNAMU_ZIADOSTI a VYMAZ v MODULE1 sú asi na smiech 1 , ale v rámci mojich možností, tak privítam aj ich zjednodušenie.
Ďakujem

Zaslat odpověď >

#042763
avatar
Nepriložilo mi súbor, tak druhý pokus 1
Příloha: zip42763_rezervacia_auta.zip (117kB, staženo 58x)
citovat
#042767
Stalker
Hm 8 , musím přiznat, že se mi celý ten koncept formuláře vůbec nelíbí. A podle toho, že je toto první reakce od položení dotazu, nejspíš nejsem jediný.

Vůbec sem nepobral, jakou formou mají být data vkládána do schválených žádostí (a proč vlastně, když jsou umístěny hned vedle žádostí), jakožto i ono umístění schválených, které znemožňuje odstranění celého řádku při smazání žádosti. To, že se nová data vkládají do případných prázdných řádků (po smazaní žádosti) je sice pěkné, ale neměly by jít data (datum) chronologicky za sebou? Tedy nová žádost vždy na poslední volný řádek tabulky? Přece nebude žádost ze dne 20.2 umístěna např. mezi daty 8.2 a 12.2 - celá takto vytvořená tabulka bude silně nepřehledná.

Přiznám se, že se mi do nějakých velkých úprav nechce pouštět, tak přikládám jen upravený kód makra PRIDAJ_DO_ZOZNAMU_ZIADOSTI
Příloha: zip42767_rezervacia_auta.zip (110kB, staženo 24x)
citovat
#042768
avatar
Žiadosti prichádzajú postupne a na rôzne dni, čiže dnes môže prísť žiadosť na 1.3., zajtra na 20.2 a pozajtra na 28.2.. Preto následné kopírovanie do SCHVÁLENÝCH ŽIADOSTÍ vo forme kalendára, ktorý je prehľadný a je hneď vidno, kedy je auto obsadené a kedy k dispozícii.
Nie som ale ani proti inému riešeniu, kedy by sa žiadosti zoraďovali v ZOZNAME ŽIADOSTÍ automaticky podľa dátumu požiadavky, ak je v ňom nejaká zmena. S tým sa skúsim pohrať.
Forma vkladania do SCHVÁLENÝCH ŽIADOSTÍ je rozšírením makra "ANO" o " nájdi zhodný dátum v tabuľke SCHVÁLENÉ a ak je voľný, zapíš ho do nej a ak nie je voľný, upozorni na to.

Vďakacitovat
#042769
elninoslov
Hmm, no je pravda, že je to trochu svojsky riešené. To nieje výtka. Ja by som si vyberal napr aj mená z výberového zoznamu (Overenie dát) bez prepínania listu. Ak je potrebné veľmi často zadávať doteraz nepoužité mená, tak VBA formulárom. Každopádne teraz na to nemám chuť 7

Len 2 poznámky:
-To mazanie čo spomínate (a to len tipujem, neskúmal som) je možno tým, že nepoužívate premennú na uchovanie hodnoty, ale neustále hľadáte prvý voľný riadok v A. Ten nájde, ale ak zapíšete do A novú hodnotu, v ďalšom riadku kódu chcete písať do B, ale ako prvá prázdna bunka v A už nieje tá, ako pred chvíľou, lebo ste ju zapísal. A bunky treba zapísať naraz, nie po jednej.
-A druhá poznámka s tým súvisí, tie makrá by sa mali prepracovať. Dajú sa urobiť oveľa jednoduchšie, napr. mazanie hodnôt
Sub VYMAZ()
With ActiveSheet
.Unprotect "0000"
.Shapes(Application.Caller).TopLeftCell.Offset(0, -10).Resize(, 10).ClearContents
.Protect "0000"
End With
End Sub

alebo to pridávanie žiadosti:
Sub PRIDAJ_DO_ZOZNAMU_ZIADOSTI()
With ActiveSheet
If .Range("H2").Value = 47 Or .Range("I2").Value = 47 Or .Range("J2").Value = 47 Then Exit Sub
.Unprotect "0000"
.Cells(19, 1).End(xlDown).Offset(1, 0).Resize(, 9).Value = Array(.Cells(9, 2), .Cells(9, 3), .Cells(9, 6), .Cells(12, 2), .Cells(12, 3), .Cells(12, 6), .Cells(7, 2), .Cells(7, 9), .Cells(9, 9))
.Cells(2, 1).Resize(, 10).Formula = Array(0, 0, 0, "=C2/2", 0, "=E2/2", 0, 47, 47, 47)
.Protect "0000"
End With
End Sub

atď...citovat
#042781
Stalker
Přikládám soubor s malou (opravdu malou) úpravou spočívající v promazání kódu a seřazení dat v tabulce podle data požadavku OD. Bohužel i v tom tomto případě bude nutná manuální kontrola.

Kopírování do vedlejší tabulky sem nedělal, protože stále nevím jak to chcete řešit. Pokud by se jednalo o rezervaci na jeden den např 25.3, tak to je jednoduché, řádek se zkopíruje ke stejnému datu, ale pokud to má být rozmezí od - do např 10.3 - 28.3, tak to upřímně netuším jak to chcete přesně řešit. Řádek se zkopíruje k datu 10.3 nebo 28.3 nebo?
Hlavně by se měla brát v potaz i hodnota času.

Přiznám se, že vůbec netuším jak tohle udělat. 7

PS: ještě dva postřehy. Proč se na listě ZOZNAM ŽIADATEĽOV vybírá účel cesty, když se do žádostí vůbec nezapisuje?
A druhá věc souvisí s předchozím textem. Pokud sem to dobře pochopil formulář má sloužit k rezervaci konkrétního (jediného) služebního vozu. Pokud je to tak, je Ve Vašem přiloženém souboru chyba. Máte dva řádky s příznakem "Áno" s cílem Modra a Bratislava. Pokud má být vozidlo půjčeno 24.2 do 2.3 není možné ho znovu půjčit od 25.2 !
Příloha: zip42781_rezervacia_auta.zip (108kB, staženo 20x)
citovat
#042783
avatar
Ďakujem všetkým.

Stalker:
- Kopírovanie do vedlajšej tabuľky som včera zavrhol, bol by problém pri použití auta v jeden deň viacerými ľuďmi, nebolo by to kde zapísať a stráca to tým význam, ktorý som zamýšľal. Tvoje zoradenie je toho dostatočná náhrada.
- účel cesty: stále je to vo vývoji, účel bol plánovaný, ale nakoniec nepotrebný, nikoho nezaujíma, potrebuješ auto - ber si ho. Už som to zrušil, len v poskytnutej verzii to ešte zostalo.
- 2 riadky s jedným dátumom a časom: Môže sa stať, že budú 2 požiadavky na ten istý čas, preto schvaľovanie auta ANO - NIE, aby niekto rozhodol, ktorá cesta je prioritná. Inak je to vlastne len rezervácia auta, aby som s ním mohol počítať. V priloženej tabuľke mohli byť 2 chválené na ten istý čas - nahadzoval som to len ako príklad narýchlo a bez kontroly. Ale áno - schválenie 2 požiadaviek na ten istý čas nie je ošetrené.
Ďakujem za úpravy. Len by som poprosil ešte v tom zoraďovaní doplnenie zoradenia podľa času pri rovnakom dátume, ak môžem ešte otravovať.
Inak ešte raz ďakujem všetkým. Aj tak stále nechápem, ako v dnešnej dobe môže takáto forma pomoci vôbec existovať. Mali by vás tu aj celá stránku dávať za vzor celému svetu! :-)citovat
#042805
Stalker
Upraveno
Příloha: zip42805_rezervacia_auta.zip (109kB, staženo 52x)
citovat
#042857
avatar
Ďakujem Stalkercitovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

rozpis zápasů hráčů pro utkání dvou týmů

Anonym • 25.5. 11:54

Hromadné přepsání

elninoslov • 24.5. 10:29

Hromadné přepsání

Nomi • 24.5. 8:32

Index - každý rok začít od 1 Power Query

Alfan • 23.5. 9:17

nepřímý odkaz

elninoslov • 23.5. 0:00

nepřímý odkaz

bordov • 22.5. 18:35

vrácené hodnoty

Anonym • 22.5. 15:46