opravit si text cs="........" a us="........"
např.
cs="="
us=" "
pro případ, že chceš = nahradit znakem mezera
Napsat funkci:
Function UkazVzorec(Cell As Range) As String
UkazVzorec = Cell.Formula
End Function
Function UkazVzorecCesky(Cell As Range) As String
UkazVzorecCesky = Cell.FormulaLocal
End Function
a do příslušné buňky vložit:
=UkazVzorecCesky(bunka)
nebo=ukazvzorec(bunka)
Nevím, zda jsem pochopil správně Tvůj dotaz, ale vzorec Tebou uvedený je má pár chyb.
=KDYŽ(JE.CHYBHODN(VYHLEDAT(B1;Data!B:B)=B1);"x";SVYHLEDAT(A5;Data!A:D;4;NEPRAVDA));
1. problém je v relativní hodnotě B1 [uvedl bych zde $B$1 - VYHLEDAT($B$1;Data!B:B)=$B$1)]
2. výraz SVYHLEDAT vrátí vždy chybu pokud porovnáváš A5 s datumem [správně SVYHLEDAT(A5;Data!C:D;2;NEPRAVDA)] - pak vrátí hodnotu ze sloupce D listu DATA
Pokud se jedná o dva sešity, jak uvádíš, pak nezapomeň na to, kde tyto sešity jsou uloženy. Pokud se jedná o listy v jednom sešitu, pak není potřeba nic dalšího měnit.
celý vzorec bych viděl:
=KDYŽ(JE.CHYBHODN(VYHLEDAT($B$1;Data!B:B)=$B$1);"x";SVYHLEDAT(A5;Data!C:D;2;NEPRAVDA))
Ovšem musí se také vyhodnotit chybová hodnota funkce SVYHLEDAT, popř omezit hledání na neprázdnou hodnotu buňky A v listu Form (podmínkou KDYŽ). To ale již zvládneš.
Add 4) - vytvoření seznamu - zkopírovat buňky ve kterých jsou uvedeny názvy institucí do nově vytvořeného listu. Označit celou oblast zkopírovaných hodnot a použít funkci Odebrat stejné.
Pojmenovat záhlaví dle zadání.
Pro vytvoření počtu účastníků z jednotlivých institucí použít funkci COUNTIF.
Add 5) - Seřazení předpokládám zvládnete, součet všech účastníků snad také a počet institucí - napovím, že lze využít stejnou funkci (COUNTIF) jen musíte přemýšlet o podmínce.
Lon
Vzorec pro výpočet Velikonočního pondělí:
=(KČ(("4/"&C4)/7+MOD(19*MOD(C4;19)-7;30)*14%;)*7-6)+1
; kde buňka C4 obsahuje rok, pro který chcete výpočet provést.
Lon
Navrhoval bych řešení od Vasey, malinko poupravené
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cisla$
Dim radek!
radek = 3
For radek = 3 To UsedRange.Rows.Count
cisla = Range("d" & radek)
If cisla <> Empty Then
Range("e" & radek).FormulaR1C1 = "=" & cisla
Else
Range("e" & radek) = Empty
End If
Next radek
End Sub
Toto makro vložit do příslušného listu, má jedinou nevýhodu - při velkém počtu dat může brzdit výpočet
Lon
Zvolil bych funkci vyhledání souboru
záleží na verzi MSO protože to co funguje v MSO 2003 nefunguje v MSO 2007
Dát do cyklu a skrýt podle prázdné buňky
For i = 1 To 50 ' pro 50 řádků od 1
If Cells(i, 1) = Empty Then ' buňka ve sloupci A je prázdná?
Rows(i).Hidden = True ' ano, skryj řádek
End If
Next i
Lon
For n = 1 To 200
Cells(1, 1) = n
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Next
kde Cells(1,1) je buňka A1
pak bych zkusil zpodmínkovat formou vložení do
Sub UserForm_Activate()
nazev_prvniho_textboxu.Visible = True
nazev_druheho_textboxu.Visible = False
.
.
.
.
nazev_posledniho_textboxu.Visible = False
..........
Tímto se zobrazí pouze první textbox.
Při vyplnění (změně) prvního textboxu, tedy do
Sub nazev_prvniho_textboxu_Change()
zadat podmínku pro vyhodnocení zda je prázdný či nikoliv a
nazev_druheho_textboxu.Visible=True
.......... atd pokračovat až do konce.
Možná po někoho krkolomný popis, ale bez konkrétního zadání a ukázky se "vaří" jen těžko.
Lon
No ale vždyť to funguje jak má???
Co tam je za problém?
Datumy říjen tam nejsou a ani nemohou být zpracovány
ZNOVU OPAKUJI:
hodnoty do sloupce K (tedy 1) zapisuje makro. To je z důvodu nenačítání duplicitních údajů.
Tedy při zadávání dat je nutné ponechat sloupec K nevyplněný!!!
Toto jsem popisoval již několikráte výše
Lon
Aha, domnívám se, že jsi určitě vyplnil i sloupec K při zadání údajů. Ten slouží pouze pro to makro aby nedocházelo k duplicitám, tak jak jsem psal výše (proč ten sloupec využívá makro).
Samozřejmě pokud v daný den nebude sešit otevřen, pak se nic nezapíše.
stačí zaměnit
If Date = CDate(datum) Then
za:
If Date >= CDate(datum) Then
pak při otevření se zapíší všechny starší nezapsané hodnoty.
Vycházel jsem z původního zadání
Lon
To je velice zvláštní, teď jsem povedl pouze zkopírování pár položek a zadal datum říjen a změnil jsem systémový čas.
Vše funguje naprosto v pohodě.
Kontroluje se pouze odpovídající den, tak jak bylo popsáno v zadání.
Nevím co více by se Vám mělo dále kopírovat????
Tak to bylo popsáno v zadání.
pokud je ve sloupci K zapsána 1, pak je údaj zpracován v daném měsíci na jeho kartě.
Pokud tam je jiná hodnota, pak se považuje za "nezkopírovaný" - kvůli duplicitám při opakovaném otevření sešitu v zadaný den.
Neví co je myšleno pojmem - Dá se s tím něco udělat???
Lon
Musí to fungovat v jakémkoliv měsíci.
Od toho je podmínka:
If Date = CDate(datum) Then
ta vyhodnocuje zadaný den.
Můžete zkusit cvično změnu systémového datumu Vašeho PC a uvidíte.
POZOR na nesprávně zapsané datumy jako jsou 31.září 2010, adt.... NENÍ OŠETŘENO
Lon
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.