ClearContents riadky nemaže. Maže iba obsah. Budete mať "deravú" tabuľku. Tam kde používate to COUNTA() dajte napr.
=IF(COUNTA(A3:A978)=0;ERF(;);COUNTA(A3:A978))
a vráti Vám to chybu #NEDOSTUPNÝ, a nie A2:A2. Alebo proste iba testujte 0. Neviem aké máte presne použitie toho COUNTA, čo robíte s výsledkom ďalej...
Tú chybu na vyššie spomínanom riadku spôsobuje to, že ak si zmením dátum napr. na dnešný, že chcem začínať od dnes, tak treba zmeniť aj názov listu na číslo dnešného dňa, inak vzniká odkaz na neexistujúci list. Potom už to ide ako ste zamýšľal. Ešte by som tam ale doplnil uloženie nového xlsx po jeho vyplnení, nielen jeho otvorenie. A uloženie iba dát, bez vzorcov, ak bude ten súbor napr. poslaný mailom, bez Master súboru, dostane otravnú hlášku o prepojení.
Ale Vy ste ani nespomínal, že chcete kopírovať aj makrá. Vy ste spomínal, že chcete vytvoriť z dát, ktoré máte v 0.xlsm, výber určitých dát, a tento výber potom uložiť v novom zošite 1.xlsx. Netuším načo by tam mali byť makrá. Vy predsa ukladáte hotový plán, hotový zošit, bez tlačítok, teda aj bez makier.
Ten skrytý list je iba ako forma-vzor. do nového zošitu sa nakopíruje, ale nie skrytý, ani žiadny iný skrytý tam nieje.
Ja som Vás pochopil tak, že tam majú byť už len vypočítané dáta, čiže už aj bez vzorcov, že je to do prevádzky, zákazníkovi, proste niekam ako finálny zošit.
Prípadne ešte upresnite.
Kolega ma predbehol. Ale dám aj svoje riešenie.
EDIT: Pozerám, že Vy ste riešil a kopec ďalších vecí, ktoré dotyčný ešte ani nespomenul, super.
Havaruje mi to na tomto riadku
rBunka.Formula = Replace(rBunka.Formula, "01'!", Format(dDen, "dd") & "'!")
Pravá časť je OK, a priradenie vzorca píše Applicatio-defined or Object-defined Error. To nechápem.
Inak tú kópiu sme urobili veľmi podobne :)
Áno poznám, najskôr som mu ju tam chcel dať, naschvál som mu tam dal jeho vzorec, a ešte som zdôraznil použitie tohto vzorca, a čakám na reakciu, aby som sa mohol opýtať, ako presne má ten prepočet fungovať. Či je to takto správne, lebo rozdiel napr. 10 dní vyhodnotí ako 0, ak je to v jednom mesiaci, a ako 1 ak je to na prelome. Neviem ako sa to má v jeho obore počítať.
Stačí v makre zmeniť priradenie do poľa na:
DateDiff("m", PoleD(i, 1), Dnes)
Opäť a zasa netušíme o čo ide, ale ak len o hromadné prepočítanie v nejakom stĺpci pomocou makra s použitím Vášho vzorca, tak toto vypočíta výsledok celého stĺpca C a vloží do D počet mesiacov. Neviem ale, či to bude rýchlejšie, ako keby ste tam mali vzorce. Vyskúšajte.
Sub Meciacov()
Dim PoleD(), PoleM() As Integer, i As Long, MM As Integer, Dnes As Date, R As Long
With ThisWorkbook.Worksheets("Hárok1")
Dnes = .Cells(2, 12)
R = .Cells(.Rows.Count, "C").End(xlUp).Row - 1
PoleD = .Cells(2, 3).Resize(R).Value
ReDim PoleM(1 To UBound(PoleD))
For i = LBound(PoleD) To UBound(PoleD)
PoleM(i) = (Year(Dnes) - Year(PoleD(i, 1))) * 12 + Month(Dnes) - Month(PoleD(i, 1))
Next i
.Cells(2, 4).Resize(R).Value = Application.Transpose(PoleM)
End With
End Sub
Nech sa páči. Máte tam aj kontrolu, aby sa nevypisovala chyba, ak sa hodnota nenájde, aby sa nevypisovala 0 ak je bunka v List3 prázdna, a aby sa nekontrolovalo, ak je v List1 v B nevyplnený údaj.
Opravil som Vám aj nezmyselné vzorce na spočítanie oblasti v riadku 36 a v bunkách N40 a N41.
Snáď OK.
EIDT: PS: Treba si ešte upraviť/opraviť orámovanie buniek v stĺpcoch A,B,C. Neviem, či ste to zamýšľal takto.
Môžete prosím ešte raz napísať ktorý stĺpec z List3 sa má kopírovať do ktorého stĺpca Listu1 ?
3 >> 1
C -> D (určite ??? nie náhodou D -> D)
D -> E (určite ??? nie náhodou E -> E)
R -> R (určite ??? nie náhodou F -> R)
S -> S (určite ??? nie náhodou G -> S)
Už mi to docvaklo. Spomenul som si na podobný problém, spomenutý tu na fóre, pri Step -1 v cykle.
CDbl som tam mal, ale pri skúšaní všemožných typov asi v nesprávnej kombinácii s typom výsledku. To je vlastne aj dôvod prečo tam ostalo Double = náhodou.
Niekedy stačí namiesto bezhlavého skúšania, sa zastaviť, porozmýšľať, a možno niečo cvakne.
Na tom by ale ešte mohli aj súdruhovia z MS zapracovať, že ak ľavá strana priradenia je napr. Long, tak bude s číslami na pravej strane pracovať ako s Long, aj keď sú tieto čísla menšie. No ale čo už. Ďakujem opäť za ozrejmenie.
Tu sú obe riešenia, máte to už hotové, ale aj tak to sem dávam preto, lebo som narazil na zaujímavý problém. V popise makra to je opísané.
Ak vynásobím 1000*1000 dostanem OverFlow, tak si na to dajte pozor, ak budete podobným spôsobom vypočítavať priebeh.
No, keď netušíme čo a ako to makro robí ...
Skúste najskôr "vypočítať" bunky/riadky/stĺpce s rovnakým formátom pomocou Union, a nastavte ich potom naraz, nie po jednom (bunke, riadku, stĺpci). Všetky rovnaké naraz, lebo budú pomocou Union združené v jednom Range.
Odkazujete tam na bunku L4, tá dáva vždy "", musíte odkazovať na I4. To je len detail.
Výborné riešenie cez AutoFilter, chcel som to ísť urobiť cez filtrovanie poľa. Toto je lepšie.
Ak bude dotyčný chcieť vymazať len riadky ktoré odpovedajú aj tovaru, aj firme, aj dátumu, aj množstvu tak to musí byť nejako takto. Inak sa mu vymažú aj riadky pre iné firmy, ale možno o to ide. Na to aby to filtrovalo aj dátum, som ale musel pridať schovaný stĺpec s číslom dňa, lebo filter mi dátum ako dátum nefiltruje tak ako si predstavujem. Akviete niekto tento filter dátumu vyriešiť inak, prosím písnite.
Kód na pridanie riadkov som skrátil. Bez With by to šlo dať na jeden riadok.
Vždy sa dá urobiť PrintScreen + OCR, môže byť aj neviem ako zamknutý. OCR Vám z toho ten text väčšinou urobí. Dokonalá ochrana proti kopírovaniu textu neexistuje.
@dod175 : nech sa páči.
@eLCHa : dnes som uz nemal čas, ale Hyperlink mi robí doslova psie kusy.
-použitie validných adries je samozrejmé
-Vzorec mi robí to čo som popisoval, ruka je, nefunguje, farbu ani podčiarknutie nemá.
-ak hneđ vedľa manuálne vytvorím HL z rovnakou adresou, ten funguje normálne, a nemusím použiť ani http, čo pred tým nešlo.
-Opakoval som to niekoľkokrát a zistil, že niekedy nepravideľne, po manuálnom vložený HL, začali fungovať aj tie počítané, neboli sice podčiarknuté ani farebné ale niekedy fungovali.
Prepínanie na automatický výpočet listu a na manuálny som skúšal, nič nepomáhaéúé
Ešte posledná vec a utekám:
"http://" by som nedával priamo ale s podmienkou, či už náhodou odkaz "http://" neobsahuje.
Takže namiesto "http://" :
IF(LEFT('Z:\Prepojené zošity\[data.xlsx]Hárok1'!D2;4)="http";'Z:\Prepojené zošity\[data.xlsx]Hárok1'!D2;"http://"&'Z:\Prepojené zošity\[data.xlsx]Hárok1'!D2)
PS: Som zabudol, mne to odkaz nevytvorí funkčný ani s "http://". Prečo netuším.
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.