Jednou z možností řešení je maticový vzorec.
P.
Např.:
=IFERROR(INDEX($A:$A;SMALL(KDYŽ($B:$B=D$3;ŘÁDEK($A:$A);"");ŘÁDEK($A1));1);"")
Můžeš si vytvořit dynamický seznam, který bude třeba vázaný na zadání aktuálního roku, s tím že vše ostatní se již změní samo. Teoreticky i ten rok lze automatizovat přes funkci DNES (nebo přes nějaký konkrétní datum).
Většina svátků je pevných, a mění se pouze rok, takže ty můžeš zadat přes funkci DATUM. No a na Velikonoční pondělí lze dohledat pěkný vzorec na Googlu (Velký pátek už je pak jen o logice).
P.
Přesně tak, seznam svátků se musí udělat ručně. Zadat jej můžeš kamkoliv.
P.
V tom případě asi nemáš onen svátek zadaný v seznamu svátků. A jak tak koukám na tu přílohu, tak tam ani nikde žádný seznam svátků nevidím...
P.
Koupím pivo každému, kdo chápe zadání... :-D
P.
Asi neporadí ;-).
Žádný řádek s MsgBox jsi neuvedl... Nepíšeš ani, co s Labelem chceš dál dělat...
Křišťálové koule jsou drahé, ne každý má nějakou doma!
P.
Pokud bys tam měl pouze samotná čísla, tak je řešením funkce MIN (počet výskytů pak přes funkci COUNTIFS). Pokud tam vyloženě musíš mít takto ten příznak "dní", tak si můžeš ona samotná čísla vytáhnout do nového sloupce (funkce HODNOTA, ČÁST, NAJÍT). Případně lze také vyřešit přes maticové vzorce...
P.
Př. (maticový vzorec):
=SMALL(HODNOTA(ČÁST($B$2:$B$51;1;NAJÍT(" ";$B$2:$B$51;1)-1));1)
Tak vlož to, co už máš...
P.
Proč jsi nenahrál excelovou přílohu ale jen obrázek?
P.
Lze toho dosáhnout přes funkce KDYŽ, DENTÝDNE a DNES.
P.
Např.:
=KDYŽ(DENTÝDNE(DNES();16)=7;DNES();DNES()-DENTÝDNE(DNES();16))
Tlačítko na klávesnici "Insert"?
P.
A kam jsi ji přidal? ;-)
P.
Důležitou otázkou je, jak se do buňky A1 dostane ona hodnota - důležité pro nastavení (ošetření) podmínky na kopírování (ručně, výpočet...).
Když píšeš, že se mají sloupce přesunout, tak se automaticky i "smažou" z původního listu.
Pak píšeš "data v novém sešitě", ale v předchozí větě mluvíš o přesouvání na nový list. Kam se to tedy má přesouvat?
Rozhodně bys měl vložit přílohu... Jinak řešením je samozřejmě VBA a událost listu.
P.
Předpokládám, že chceš do té buňky vložit přes VBA vzorec.
P.
Např.:
Range("W3").FormulaLocal = "=SUMIFS(V3:V2000;P3:P3000;""<""&A1)"
Nejdříve bych upozornil na to, že v Excelu existuje funkcionalita "Sledování změn" - karta Revize. Díky tomu můžeš získat do komentáře buňky poslední provedenou změnu. Excel pak umožňuje také "Zobrazení změny na novém listu" = tzv. historie změn vázaná na uložení sešitu. Podívej se, jak to funguje...
Jinak to, co popisuješ, by šlo udělat určitě přes makra a události listu.
P.
Možné řešení přes VBA:
Public puvodni_hodnota_bunky As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
puvodni_hodnota_bunky = Target.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim volny_sloupec As Integer
If Target.Column <> 1 Then
Exit Sub
End If
Application.EnableEvents = False
volny_sloupec = Cells(Target.Row, 10000).End(xlToLeft).Column + 1
Cells(Target.Row, volny_sloupec).Value = "změna z: " & puvodni_hodnota_bunky & " na: " & Target.Value
Application.EnableEvents = True
End Sub
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.