Určite správny popis???
Čo má spoločné C4 s bunkou E3? Snáď to myslíte tak, že bunka C3 ovplyvňuje to čo bude v E3. A o dvojici C4 vs E4 platí to isté ale oddelene od riadku 3.
Váš popis som prečítal tak, že je jedno v ktorej bunke (či C3 alebo C4) bude hodnota A/B tak obe bunky E3 a E4 budú ovplyvnené. Čo ale potom v prípade ak bude C3=A C4=D???
Ďalej,
"aby v buňkách E3 nebo E4 varinty m nebo v zmizely" ??? Excel nevie aby užívateľom zadané manuálne hodnoty (čo výber zo zoznamu je) zmizli. Dajú sa skryť podmieneným formátom, ale stále tam budú (neviditeľné) a budú sa započítavať do vzorcom.
Jedine ako sa dá docieliť zmiznutie hodnoty, je makrom.
Žiaľ netuším čo chcete, tak mi to tam pekne manuálne vypočítajte, zapíšte, vyfarbite, a potom slovne popíšte čo ste pri výpočte odkiaľ akú hodnotu bral. Vzorec a dynamické chovanie Vám urobím.
Príklad. Ak by mal byť teda list DATA v samostatnom súbore, tak by sa urobilo načítavanie týchto dát z toho samostatného súboru cez PowerQuery dotaz do skrytého listu, kde by bola skrytá kópia. Lebo neviem či by šli nalinkovať dynamické zoznamy z iného súboru počítaného vzorcami. Ani sa mi nechce to skúšať momentálne.
To bude záležať na tom ako tie dáta presne dostávate. Ak vzorcom zo vzdialeného zošitu, tak v tom vzorci napr.
IF(VLOOKUP(....)=0;"žžž";VLOOKUP(....))
zoraďte, a potom zase následne podľa použitia, ktoré netušíme, buď preveďte vzorce na hodnoty a nahraďte Ctrl+H "žžž" za 0, alebo ak potrebujete tie vzorce pridajte stĺpec
IF(predchádzajúci stĺpec="žžž";0;predchádzajúci stĺpec)
ak dáta získavate v PowerQuery dotaze tak v tom dotaze napr.
#"Nahradená hodnota" = Table.ReplaceValue(Zdroj,0,"žžž",Replacer.ReplaceValue,{"Hodnota"})
v tom PQ to zoraďte a následne opačne "žžž" na 0
ak ich nepotrebujete, tak ich najskôr vyfiltrujte a potom zoraďujte.
Nemáme prílohu, nevieme typ získavania dát, nevieme účel...
Viete o tom, že máte 9h nočnú, však?
Iba pomenujete správne česky názov listu, a všetko sa nastaví.
"Ze severu (IP adresy) získám seznam příjmení."
Vzorcami zo vzdialeného súboru na serveri? - čiastočne sa dá podmienkoou, za určitých okolností.
Cez PowerQuery dotaz? - ošetriť v tom dotaze.
Inak?
Tie s 0 potrebujete odfiltrovať preč alebo len dať na koniec? Nahraďte 0 za "žžžž" zoraďte a nahraďte "žžžž" za 0.
Hmm...
Deň má 24 h. Počíta sa od 00:00 po 23:59. Ak máte prvé označenie hodiny 01 znamená to, že tam bol pracovník do 01:00? V tom prípade nemôžete na opačnej strane dňa mať ako nočnú aj označenie 22, lebo to značí od (nočná je od 22:00) a nie rovnako ako začiatok dňa do. A naopak, ak to má byť celé od, tak začiatok je zle, a má byť od 00, teda od 00:00, a končiť deň budete označením hodiny od 23.
Píšete "jak to je naznačeno v příloze", ale v prílohe nemáte znázornené (manuálne vyfarbené) ako to má vyzerať. Píšete modré písmo, ale myslíte modrý podklad. Čierna je oranžová, 3 druhy "červenej".
Normálne na tomto príklade září 2022 vysvetlite ako to je s tými hodinami, zrušte všetko podmienené formátovanie, a manuálne vymaľujte bunky, ako ich chcete mať. Podm. formát už nejako urobíme.
Víkendy a sviatky už mám, auto orámovanie podľa počtu dní mesiaca, atď. ale nerozumiem tomu návrhu.
Podotázky:
Ako sa budú označovať popolnočné hodiny nočnej smeny ak do polnoci je piatok, po polnoci je sobota?
Alebo do polnoci streda, po polnoci štvrtok a sviatok?
Stačí zmeniť
MAIL_ADRESAT = "niekto@odniekial.com"
na
MAIL_ADRESAT = .Range("B5").Value2
a vyplní adresáta (alebo adresátov oddelených bodkočiarkou/středníkem) napr. z bunky B5.
Kdybych si předpřipravil adresáře
__pdfhs0002
__pdfhs0003
a další podle čísla HS (hospodářské středisko).
Dalo by se to nastavit tak, abych nemusel "editovat" toho ODESILATEL_MAIL?
A co mám změnit, aby se připravený email zobrazil, ten jeho dialog, aby to nezůstalo "skryté", neozbrazené?
Dajte si tam dočasne toto makro na výpis zoznamu účtov.
Sub Vypis_Uctov_Outlooku()
Dim OutApp As Object, oUcet As Object
On Error Resume Next
Set OutApp = GetObject(, "Outlook.application") 'ověření, zda není Outlook otevřený
If OutApp Is Nothing Then
Set OutApp = CreateObject("Outlook.Application") 'otevření Outlooku, pokud není otevřen
If OutApp Is Nothing Then Debug.Print "CHYBA" 'chybová správa o otvírání Outlooku
End If
On Error GoTo 0
For Each oUcet In OutApp.Session.Accounts 'výpis účtů
Debug.Print oUcet & "......." & oUcet.CurrentUser.Address
Next oUcet
Set OutApp = Nothing: Set oUcet = Nothing
End Sub
Zobrazte si okno Immediate (Ctrl+G), Potom spustite toto makro. V okne Immediate sa vypíše zoznam názvov kont a adries v Outlooku. Lebo názov konta nemusí byť emailová adresa. Názov konta môže byť "Ferko Mrkvička z firmy ABC s.r.o." a email má "ferko.mrkvicka@abc.com". No názov konta môže byť aj rovnaký ako mail. S čím som počítal. Možno to u Vás tak nie je. Ak to tak nie je, tak ten názov daného konta z okna Immediate skopírujte do makra do konštanty ODESILATEL_MAIL.
Const ODESILATEL_MAIL = "Ferko Mrkvička z firmy ABC s.r.o."
alebo konštantu nechajte tak a riadok
If oUcet = ODESILATEL_MAIL Then Exit Forzmeňte naIf oUcet.CurrentUser.Address = ODESILATEL_MAIL Then Exit For
u mňa všetko funguje, mám v Outlooku 8 účtov, a môžem si vybrať ktorý chcem. Ak účty premenujem tak potom musím urobiť jednu z vecí čo som teraz napísal, a zase všetko funguje. No problema.
EDIT:
A ešte ma napadlo. Zmeňte si
With ActiveSheetnaWith ThisWorkbook.ActiveSheet
Tuším predvčerom som to tu niekde vysvetľoval. Teraz sa mi to práve stalo, že pri debugovaní som sa prepol na iný zošit, a exportovalo mi aktívny list z toho iného zošitu. Pridanie ThisWorkbook aj toto riziko eliminuje
No trochu sa posnažte....
Lubo dal CZ verziu, tak si to prehoďte do SK/EN verzie (alebo akú máte)
maticový vzorec (Ctrl+Shift+Enter)
SK:
=IFERROR(INDEX($G$4:$G$10;MATCH(ROUND(C4-B4;3);ROUND($E$4:$E$10;3)))*A4;0)
CZ:
=IFERROR(INDEX($G$4:$G$10;POZVYHLEDAT(ZAOKROUHLIT(C4-B4;3);ZAOKROUHLIT($E$4:$E$10;3)))*A4;0)
alebo nematicový vzorec (Enter):
SK:
=IFERROR(LOOKUP(2;1/(ROUND(C4-B4;3)>=ROUND($E$4:$E$10;3));$G$4:$G$10)*A4;0)
CZ:
=IFERROR(VYHLEDAT(2;1/(ZAOKROUHLIT(C4-B4;3)>=ZAOKROUHLIT($E$4:$E$10;3));$G$4:$G$10)*A4;0)
Niektoré čísla počítali správne aj predošlé varianty, napr 99,1-99 alebo 99,3-99,2
Pridané ošetrenie všetkých možných stavov a chýb, čo ma napadlo...
Som teraz len na mobile...
Vyremujte riadok
On Error GoTo KONEC
Kde to zastaví?
Ta cesta "\__pdfhs\" existuje?
Čo obsahuje bunka B4?
Zápis som sa snažil urobiť "Vašim spôsobom".
Ak sa Range nevzťahuje na žiadny list pracuje s práve aktívnym listom. To môže spôsobiť nevratné zmeny, ak nevedomky spustíte makro nad iným listom. Preto je bezpečnejšie odkazovať na list, ktorého sa to týka. T tomto prípade Worksheets("mrp"). A aby ste nemusel pred každým Range alebo Cells alebo inou vlastnosťou, metódou, či procedúrou listu používať Worksheets("mrp"), tak je na to príkaz "With", ktorý značí, že všetko čo medzi "With" a "End With" zapíšete bodkovou notáciou (začína bodkou) sa vzťahuje práve k objektu zadefinovanému vo "With". Používa sa to aj ak idete meniť veľa vlastností nejakého objektu (napr. rozmery obrázku na nejakom liste).
Napr.
With Worksheets("mrp").Pictures("obr1")
.Left = 10
.Top = 20
.Width = 100
.Height = 150
End With
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.