Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  57 58 59 60 61 62 63 64 65   další » ... 289

No nie je priložená ...
Treba makro ukázať.

EDIT:
Ak sa jedná o nahrávku makra importu súboru (tá staršia verzia), tak tam nastáva presne popisovaná situácia. Pri nahrávaní makra to urobí OK, ale nahrané makro hodí chybu na riadku
.CommandType = 0Zmažte ho, a je po ptákách.

O koľko prvkov sa jedná? Jedná sa o čísla, písmená, slová? Ukážku máte? Môže to byť makro? Makrom som to tu robil už niekoľkokrát. Musím pohľadať ...

S údajovým pruhom je komplikácia - nemožnosť nastavenia MAX na relatívnu bunku (ani pomocou def. názvu). Teda by ste musel nastaviť pre každú bunku samostatné PF, MIN na 0 ale MAX pre každú bunku samostatne na jej adekvátnu hodnotu v C.

Normálne to funguje. Ak by som to neotestoval, napíšem, že som netestoval. Tu som to doplnil ešte o nájdenie správneho adresára k Desktop, a preskočenie prepísania pôvodného súboru "novy.xlsx", ošetrenie chyby pri rušení naplánovania (ak makro bolo ukončené, premenná sa neuchovala, a nastane chyba).
Spúšťate to cez "nacas".

Ak čas už bol, nastaví sa ďalší deň. S časovačom v Exceli ale býval často problém, že sa spúšťal aj po zatvorení Excelu. Vyskúšajte. Na skúšanie si nedávajte 18:00:00 ale nejaký bližší čas 5
Pridal som aj to, aby sa ukladanie anulovalo po zatvorení súboru, a naopak, aby sa automaticky nastavilo pri otvorení súboru (toto si ale aktivujte až následne, najskôr si nastavte čas ako chcete). Prípadne sa automatická aktivácia dá urobiť na msgbox s otázkou na užívateľa. Ale potom treba zase vyriešiť, ako sa to vlastne bude spúšťať...

Do modulu:
Public New_Save_Time As Date

Sub SaveSheet()
ThisWorkbook.ActiveSheet.Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Value = .Value
End With
.SaveAs "C:\Users\baby\Desktop\novy.xlsx"
.Close False
End With
nacas
End Sub

Sub nacas()
New_Save_Time = Date + TimeValue("18:00:00")
If New_Save_Time < Now Then New_Save_Time = New_Save_Time + 1
Application.OnTime New_Save_Time, "SaveSheet"
End Sub

Sub Cancel_Schedule()
Application.OnTime EarliestTime:=New_Save_Time, Procedure:="SaveSheet", Schedule:=False
End Sub

Do modulu Tento_zošit:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Cancel_Schedule
End Sub

Private Sub Workbook_Open()
' nacas
End Sub

Ale keď tam nie je dátum, tak to je asi číslo dňa 0, teda 1.1.1900. To sa asi načakáte.
Bez overenia : skúste dať Date() + TimeValue("18:00:00"), ale aj tak najskôr skontrolujte či Now() náhodou nie je väčší (teda či už 18:00 nebolo).

DTPicker ale nefunguje na x64 pokiaľ viem.
Možno by stálo za zváženie aj niečo takéto podobné:
https://trevoreyre.com/portfolio/excel-datepicker/
funguje na x64.

Set compld2 = Range("B:B").Find(What:=idsearch, After:=Range("B1"), LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious)

Tak len doplním ten najkomplikovanejší variant, ak sú mesiace na preskáčku vyplnené a nevyplnené, a potrebujete súčet X vyplnených od konca.

2 Definované názvy
MESIACE:
=OFFSET(Hárok1!$B$9;;;;LOOKUP(2;1/(Hárok1!$9:$9<>"");COLUMN(Hárok1!$9:$9))-1)
=POSUN(Hárok1!$B$9;;;;VYHLEDAT(2;1/(Hárok1!$9:$9<>"");SLOUPEC(Hárok1!$9:$9))-1)


SPLNENE:
=MATCH(Hárok1!$G$5;COUNTIF(OFFSET(Hárok1!$B$9;;COLUMNS(MESIACE)-COLUMN(MESIACE);;COLUMN(MESIACE)-1);"<>");0)
=POZVYHLEDAT(Hárok1!$G$5;COUNTIF(POSUN(Hárok1!$B$9;;SLOUPCE(MESIACE)-SLOUPEC(MESIACE);;SLOUPEC(MESIACE)-1);"<>");0)


no a výsledný vzorec:
=IFERROR(SUM(OFFSET(B9;;COLUMNS(MESIACE)-SPLNENE;;SPLNENE));SUM(MESIACE))
=IFERROR(SUMA(POSUN(B9;;SLOUPCE(MESIACE)-SPLNENE;;SPLNENE));SUMA(MESIACE))

Napadá ma zložitejší maticový vzorec (Ctrl+Shift+Enter), ale neviem či mobilný Excel žerie matice. Počiatočný dátum je v I1, a žiadne makro netreba:
=SUM(ISEVEN(ROW(C4:I108))*{1\1\1\1\1\1\1}*(C4:I108>=I1)*(C4:I108<DATE(YEAR(I1)+1;1;1))*ISODD(ROW(C5:I109))*{1\1\1\1\1\1\1}*(IFERROR(SEARCH("m";C5:I109);0)>0))
=SUMA(ISEVEN(ŘÁDEK(C4:I108))*{1\1\1\1\1\1\1}*(C4:I108>=I1)*(C4:I108<DATUM(ROK(I1)+1;1;1))*ISODD(ŘÁDEK(C5:I109))*{1\1\1\1\1\1\1}*(IFERROR(HLEDAT("m";C5:I109);0)>0))


EDIT:
Ale veď ono by stačilo asi iba COUNTIFS, normálne nematicovo:
=COUNTIFS(C4:I108;">="&I1;C4:I108;"<"&DATE(YEAR(I1)+1;1;1);C5:I109;"*m*")
=COUNTIFS(C4:I108;">="&I1;C4:I108;"<"&DATUM(ROK(I1)+1;1;1);C5:I109;"*m*")

=SUM(OFFSET(B9;;COUNT(9:9)-G5;;G5))
=SUMA(POSUN(B9;;POČET(9:9)-G5;;G5))

Ale buďte si v oboch prípadoch vedomý toho, že sa musí jednať o súvisle vyplnené bunky. Ak niekde bude nevyplnený mesiac, tak to bude rátať zle. V takomto prípade bude vzorec nie s použitím COUNT/POČET ale s LOOKUP/VYHLEDAT.
=SUM(OFFSET(B9;;LOOKUP(2;1/(9:9<>"");COLUMN(9:9))+1-G5;;G5))
=SUMA(POSUN(B9;;VYHLEDAT(2;1/(9:9<>"");SLOUPEC(9:9))+1-G5;;G5))

Prípadne (a to bude najzložitejšie) ak by sa mali spočítať iba vyplnené mesiace. Teda pri 3 prázdnych mesiacoch niekde v priebehu, by sa malo zrátať obdobie 15 mesiacov. Na to sa ešte pozriem, ak bude treba...

Takže ide o to, spočítať, koľko je tam buniek obsahujúcich písmeno "m"?

=SUM(OFFSET(B9;;COUNTA(8:8)-G5;;G5))
=SUMA(POSUN(B9;;POČET2(8:8)-G5;;G5))

Ovládať webový Outlook asi nepôjde. Pozrite si, či by na odosielanie vyhovovala CDO metóda (meno a heslo do mailovej schránky by bolo priamo v makre ako text !).

Paráda, funguje, ďakujem!

Človeče, kam Vy na toto chodíte ? ... To je hodnotnejšie, ako sa pýtať Googlu 5


Strana:  1 ... « předchozí  57 58 59 60 61 62 63 64 65   další » ... 289

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

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28