Když ti to funguje pro jeden příkaz, pak to logicky musí fungovat i pro cyklus.
Problém může být v tom, že nevíš přesně co ta funkce dělá, a co vyžaduje ;-). Pro použití této funkce je nutné, aby zdrojové hodnoty byly ve formátu String (tedy text), rozhodně nesmí být ve formátu Date (datum) nebo Time (čas), to ti pak makro bude házet chybu "Type mismatch".
Nenahrál jsi přílohu, takže těžko dále rozvádět. Každopádně se můžeš ještě podívat jak funguje funkce "Format", případně i "WorksheetFunction.Text".
P.
Př.:
Format(Sheets("Changes").Cells(i, 7).Value, "hh:mm:ss")
WorksheetFunction.Text(Sheets("Changes").Cells(i, 7).Value, "hh:mm:ss")
Z toho zadání se to dá pochopit všelijak...
Předpokládám ale, že chceš vytvořit podmíněný počet (příp. součet) na základě podmínky v $E$9. Řešil bych přes funkci KDYŽ a COUNTIFS s vhodně nastaveným absolutním a relativním adresováním buněk (tak aby šel vzorec roztáhnout).
P.
Např. (vzorce pro sloupec F):
Den týdne bych v českých podmínkách určoval 1 = pondělí, v souboru máš 1 = neděle. Nastavuje se to podmínkou funkce:
=DENTÝDNE($F$1;2)Nevím, jak si představuješ to číslování o víkendech, ale principiálně lze udělat takto:
=KDYŽ($E$9=0;COUNTIFS($F$4:F4;"<="&5);COUNTIFS($F$4:F4;"<="&7))
Nevím, jestli ti přesně rozumím, podle mě to způsobem, který popisuješ, nejde.
Možná ještě vlož wordovskou přílohu, ať víme, jak by to mělo zhruba vypadat...
P.
1.) Lze to nastavit parametrem funkce DENTÝDNE, primárně je nastaveno na 1 (tedy neděle = "1"). Pokud chceš pondělí, tak zadej parametr "2".
DENTÝDNE(DATUM(ROK($B$1);1;3);2)2.) To se tady neslýchá často. Můžeš jim napsat soukromou zprávu, a požádat o číslo bankovního účtu... ;-)
P.
Hned v té samé nabídce máš položku "Další možnosti tabulky dat...", zde se dá formátování nastavit. Případně kliknout pravým tlačítkem myši do tabulky, a zvolit příkaz "Formát tabulky dat...".
P.
Vlož přílohu...
P.
Rozdíl větší než 4:
Udělej si pomocný sloupeček, kde bude A-B, a následně na něj aplikuj funkci COUNTIFS (pokud chceš počet řádků splňujících podmínku), případně SUMIFS (pokud chceš součet buněk splňujících podmínku).
Přičítání +5:
Lze ošetřit přes jednoduchou podmínku KDYŽ, tedy pokud jsou na řádku hodnoty počítané vzorcem. Pokud by byly hodnoty napevno, tak bys musela naprogramovat nějaké makro vázané na událost listu.
P.
Při vyhledávání můžeš například využít zástupné znaky. Princip jednoho z možných řešení:
=SVYHLEDAT(CONCATENATE("*";A1;"*");List1!B:C;2;NEPRAVDA)P.
Sázím jednu výplatu na SUMIFS ;-).
P.
Jedna z možností, maticově:
=IFERROR(INDEX(List1!A:A;SMALL(KDYŽ(List1!B:B=$D$3;ŘÁDEK(List1!A:A));ŘÁDEK(A1));1);"")P.
Bez přílohy vážně těžko říct ;-)...
P.
To už dáš sám, ne? ;-)
Dvě jednoduché podmínky v KDYŽ spojené logickým operátorem And (funkce A)...
P.
Principiálně třeba nějak takto (pro B1 až B10):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
For i = 1 To 10
If Cells(i, 2).Value = "" Then
Cells(i, 2).Value = 0
End If
Next i
End If
End SubP.
Pro tento konkrétní příklad mě napadá jedině řešení makrem - událost listu Worksheet_Change.
P.
Použij v podmíněném formátování (pomocí vzorce) absolutní adresování, ve tvém případě zafixuj sloupec.
P.
Např.:
=KDYŽ($A1="OK";PRAVDA;NEPRAVDA)
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.