Tak skúste toto.
Myslím, že sme to tu už na fóre rozoberali. Keđ bude zajtra čas skúsim pohľadať. Ja pouźívam tento CDO variant
Návrh. Treba si v makre vyplniť údaje o maile (meno, heslo, server, toto je nastavené na gmail.com) a adresár pre zálohy. Políčko Zaúčtovaný neviem, čo s ním presne, tak sa loguje akože bunka B14, ale tam bude treba tie červené (asi). Neviem či to bude zlúčené, alebo sú tam 4 údaje (bunky). To upresnite. Vy sám F11 nemente. Iba v prípade prechodu na nový rok zmente na 001/2018. Ak by to mal používať aj niekto, kto nemá mať prístup k Vášmu mailovému kontu, treba to urobiť inak, cez posielanie v Outlooku.
=INDIRECT("B1")
=NEPŘÍMÝ.ODKAZ("B1")
No to netuším, ale ja som to teraz premenoval na blbina.xls, a všetko funguje ...
To ja by som navrhoval radšej podľa mňa bezpečnejšie tlačítko. Ak to potrebujete tlačiť, tak by tlačítko "Tisk" vytlačilo vyplnený formulár, vyčistilo ho, a pripravilo nové číslo. Ak to potrebujete poslať mailom, tak by tlačítko "Zaslat" uložilo kópiu do nejakého adresára, a poslalo ju účtovníčke, formulár by sa opäť pripravil na ďalšie vypĺňanie s novým číslom. Každá z týchto operácií by mala jednu výhodu oproti kontrole zmeny v bunke, a to tú, že kliknutie na tlačítko si skôr uvedomíte (keď Vám vymaže polia), ako keď opravíte omylom zle zadanú sumu, a vytvorí Vám ďalšie číslo. Pridal by som do druhého listu aj log, kde by boli pre istotu zapisované všetky údaje, ktoré už boli vytlačené/mailnuté.
Alebo dobre teda...
Jáj, sakra, tak potom asi nejakým maticovým vzorcom, nejak tak. Nad KT sa mi už rozmýšľať nechce. Ale nejaký pomocný stĺpec by sa tam asi fakt hodil. Potom by šiel použiť aj SUMIFS.
Plus mínus autobus, takto:
Alebo potom kontingenčka.
Poznámky:
- Makro sa Vám samé určite nespustí. Treba použiť napr timer OnTime
- Tá podmienka nemôže fungovať. Máte tam AND. Teda kontrolujete či je menej ako 10:10 a zároveň či je viacej ako 10:30 :) Nemôže byť naraz aj pod 10:10 a aj nad 10:30. Teda napr:
Sub Záloha() 'Spustí makro pouze v čase od 10:10 do 10:30
If ((CStr(Time) <= "10:10:00") Or (CStr(Time) >= "11:30:00")) Then
MsgBox "ŠPATNÝ ČAS, PROBÍHÁ EXPORT DAT"
Else
Call UložVčera(False)
End If
End Sub
-Postrádam zmysel parametru procedúry UložVčera. Ten parameter nemá žiadny zmysel ani vplyv na nič.
Vedel by som pomôcť makrom. V makre si nastavte minimálny počet čísel formácie a oddeľovač.
Neviem, či to tu je písané, ale prečo potrebujete na všetky záznamy zvláštne listy ? Dá sa to aj jednoduchšie. Alebo úplne bez makra, že si doplníte údaje rovno do Tabuľky tblData a refreshnete KT a karte Údaje (teraz to urobí makro).
Ak nechcete meniť štruktúru tabuľky (zlúčenie buniek), tak v skrytom stĺpci BG (alebo v iných dvoch nezlúčených bunkách) si to vyrátajte a do výsledného skóre kopírujte výsledok z týchto 2 pomocných buniek. Či už vzorcom od "veny" alebo iným.
A nestačilo by to len pomocou KT, nejako takto ?
Šlo by to aj bez cyklu:
Sub zapis_NV_OBA()
Dim strFile_Path As String
strFile_Path = "C:\Users\pkoci\Desktop\" & Range("B1") & ".txt"
Open strFile_Path For Output As #1
Print #1, Join(WorksheetFunction.Transpose(Range("A1:A10")), vbCrLf)
Close #1
End Sub
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.