Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  38 39 40 41 42 43 44 45 46   další » ... 63

Řekl bych, že tvořit makro je zbytečné. Vystačíš si se dvěma funkcemi, které Excel nabízí. ID, v tomto případě sériové číslo, vlož jako první sloupec a využij funkce SVYHLEDAT. Pokud nechceš zobrazovat případnou hlášku "#NENÍ_K_DISPOZICI", tak to ještě obal do funkce IFERROR.
P.

Ilustrační ukázka:
=IFERROR(SVYHLEDAT(List2!$A2;List1!$E$1:$H$21;2;NEPRAVDA);"---")EDIT: Excel 2003 ještě nezná IFERROR, tak si případně pomoz s KDYŽ:
=KDYŽ(JE.NEDEF(SVYHLEDAT(List2!$A2;List1!$E$1:$H$21;2;NEPRAVDA))=PRAVDA;"---";SVYHLEDAT(List2!$A2;List1!$E$1:$H$21;2;NEPRAVDA))

Napadly mě tři možnosti.

1.) Každý list lze zvlášť uzamknout:
Revize/"Uzamknout list"

2.) Kód VBA, při aktivaci jiného listu automaticky přesměrovat uživatele zpět na požadovaný list. Do "jiného" listu tedy vložit kód:
Private Sub Worksheet_Activate()
Sheets("List1").Activate
End Sub
3.) Pokud uživatel nepotřebuje dané listy, tak je můžeš skrýt. Buď ručně nebo kódem. V nastavení v editoru VBA lze nastavit i tzv. "velmi skrytý" list, tudíž o něm běžný uživatel nebude vůbec vědět. Jedná se o parametr Visible:
Sheets("List2").Visible = 2P.

Aha, ty ale v tom druhém vzorci voláš funkci DEN, která ti vrátí den v měsíci, tedy číslo od 1 do 31, což pak nelze převádět na datum. Proto ta "chyba". Pokud chceš získat stejný výsledek, jaký ti vrátí EOMONTH, tak pouze umaž funkci DEN.
P.

Vzorec:
=DATUM(ROK(B3);MĚSÍC(B3)+1;1)-1

Vlož přílohu, mě to funguje správně.
P.

Nevím, za jakým účelem to tvoříš, ale nebylo by v tomto případě lepší mít všechna data v jednom sešitu Excelu? S tím, že by se graf mohl měnit dle nějakého nastavení, např. podle hodnoty buňky...
P.

Pokud jsi to tam kopíroval ty sám, a máš zdrojový soubor, tak můžeš využít možnosti importu, kterou Excel nabízí.
Např. Data/"Z textu"...
P.

V příkladě názorně ukazuji nastavení levého a pravého okraje v aktivním listu. Ostatní okraje si případně logicky domyslíš ;-)...
P.

Př.:
With ActiveSheet.PageSetup
.LeftMargin = Application.CentimetersToPoints(1)
.RightMargin = Application.CentimetersToPoints(1)
End With

Vyzkoušej záznamník maker a kód si případně následně uprav.
P.

Jelikož tam rozsah definuješ numericky, tak musíš využít "Range".
P.

Např. takto:
Range(Columns(Sloupec), Columns(Sloupec + 1)).Groupnebo
Range(Cells(, Sloupec), Cells(, Sloupec + 1)).Group

Je k tomu třeba využít VBA.
Konkrétně jde o událost "Workbook_Open", která se umístí do "ThisWorkbook".
P.

Př.:
Private Sub Workbook_Open()
Sheets("List1").Range("A1").Value = 0
Sheets("List2").Range("A1").Value = 0
End Sub

Nedává mi to smysl ;-). Zkus napsat k čemu to je.
V tom tvém případě sousedí i 151 a 95, a pak by byl rozdíl 56...
P.

Nejsem si jistý, co přesně chceš, protože jsi to popsal matematicky i logicky dosti nepřesně. Vypadá to ale, že potřebuješ určit lokální extrémy funkce. V tom případě stačí vytvořit pomocný sloupec a využít funkci KDYŽ pro porovnání dvou "sousedních" buněk. Lokální maximum je typické tím, že je větší než předchůdce a následovník, lokální minimum je oproti tomu menší než předchůdce a následovník. Přidej k tomu logické spojky A a NEBO, a máš hotovo.
P.

Viz příloha:

Jedna z nejjednodušších možností je vložení pomocného sloupce, kde bude datum na každém řádku. Udělej si první 4 buňky, a pak již můžeš kopírovat vzorce... Sloupec můžeš následně skrýt.
P.

P.S.
Přečti si pravidla fóra, zda děláš vše správně ;-). Pro vkládání přílohy musíš být přihlášen a příloha musí mít požadovaný formát a velikost...

Ano,
pokud nechceš odkazovat vzorcem, tak s využitím makra.
P.

Mě se to otevírá do výchozího prohlížeče, takže jednou možností je nastavit tento jinak ;-)...
P.


Strana:  1 ... « předchozí  38 39 40 41 42 43 44 45 46   další » ... 63

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