Pri krkolomnom zadaní jeden krkolomný príklad:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range
Set Zmena = Intersect(Rows(10), Target)
If Not Zmena Is Nothing Then
With Zmena
If .Rows.Count < Rows.Count Then
With .Areas(.Areas.Count).Cells(.Areas(.Areas.Count).Cells.Count)
If .Value2 <> "" Then .Offset(-9, 1).Activate
End With
End If
End With
Set Zmena = Nothing
End If
End Sub
Vymazanie súboru cez Shift+Delete nieje najmenší problém. Problém je následné používanie disku. Pri mazaní sa iba v tabuľke súborového systému označí dané miesto ako voľné, ale neprepíše sa. Teda obnovovací SW nájde tieto bloky a obnoví. Xlnc to už napísal - okamžité ukončenie práce. Tým sa nemyslí iba vypnutie Wordu či Excelu, ale v ideálnom prípade urýchlené vypnutie PC. Systém totiž na HDD neustále zapisuje aj keď Vy nič nerobíte, a preto je veľká šanca že prepíše Vaše oblasti, označené ako voľné, inými dátami. A je to v p...
Najideálnejšie by bolo HDD pripojiť v inom PC a oskenovať recovery SW, alebo použiť boot verziu daného SW či Live CD s obdobným obsiahnutým SW. Ak to nieje systémový HDD (systémová partícia), tak sa to dá urobiť aj na danom PC, ale okamžite zrušiť všetky bežiace procesy aj WinUpdate a pre istotu odpojiť od siete (všetky programy dnes majú všelijaké Tasks a Updates na pozadí...).
Všetky tu menované SW som už párkrát použil, a ešte v poslednej dobe som používal Easeus Data Recovery (nieje Free).
Na požiadanie príloha bez duplicít. Na skúšku je v "Zástupce e-mail 2" pridaný mail "vedeni1@test.cz", ktorý už je vo "Vedení e-mail", a dupla sa nepoužije.
Ak má byť interval 2000-2099, tak prvé číslo nemôže byť 2001, ale 2000, ale to si len na konci zmeníte to "-1".
Na ten Váš posledný popisovaný príklad platí:
=A2&"_"&B2&"_"&C2&"_"&VLOOKUP(D2;$G$2:$H$4;2;FALSE)+COUNTIFS($D$2:$D2;D2;$C$2:$C2;C2)
=A2&"_"&B2&"_"&C2&"_"&SVYHLEDAT(D2;$G$2:$H$4;2;NEPRAVDA)+COUNTIFS($D$2:$D2;D2;$C$2:$C2;C2)
Ale v poslednom príspevku pridávate ďalšie a ďalšie podmienky. Uveďte príklad vo forme súboru (nie popisom), kde je to čo máte, a vedľa manuálne vyrobte čo s toho má byť ako výsledok.
PS: Ak sa tie čísla nesmú meniť pri zmazaní, treba to vyriešiť jedine makrom. Takže tento vzorec je pase.
Pr.
Napadlo ma takto prejsť CodeName listov a je to. Neviem či sa dá priamo volať pomocou variabilného CodeName daný list.
Rozdelené na volaciu a volanú časť, samozrejme to môžete spojiť.
Sub Spusti()
Call AktivujList(List1.Cells(1, 1).Value2)
End Sub
Sub AktivujList(cdName As String)
Dim ws As Worksheet
For Each ws In Worksheets
If ws.CodeName = cdName Then ws.Activate: Exit For
Next ws
Set ws = Nothing
End Sub
EDIT:
Tak som vygooglil, že sa to dá:
Sub AktivujList2()
With ThisWorkbook
.Worksheets(.VBProject.VBComponents(List1.Cells(1, 1).Value2).Properties("Index")).Activate
End With
End Sub
Akurát by som to ešte ošetril na prázdnu bunku, nesprávny názov v bunke a pod. Napr. cez On Error Resume Next...
Bez tých zošitov pôjde konkrétne poradiť asi ťažko. Nahrajte ich na GoogleDrive, Uloz.to. či podobné Free servery.
Napr. takto. Ale pozor, akonáhle niečo vypočítavate takto vzorcom, a vymažete riadok, zmení ostatné kódy. A ak je to napr. číslo objednávky, alebo materiálu a pod, tak je "priekak" na svete. A pripočítava sa vždy počet po daný riadok, ale je to možné urobiť aj na Maximum+1.
Ak chcete skutočne niečo vyriešiť, musíte poskytnúť reálne rozmiestnenie dát, reálneho formátu a všetkého ostatného. Ak máte firemné citlivé dáta, ta ich zmente, ale zachovajte rozloženie a formát. A ukážte na prílohe s dátami 2 veci. 1. to čo máte, a 2. kľudne na druhom liste to, čo chcete mať. Musíme vidieť odkiaľ beriete tie filtrované dáta, odkiaľ pokiaľ je filter (šírka, výška), aký typ dát obsahuje filtrovaný stĺpec, aký typ dát majú tie vyberané hodnoty ...
Ako viacnásobné kritérium musí byť horizontálne pole stringov.
...
Zaregistrujte sa, a vložte prílohu s príkladom toho čo máte, a čo chcete mať. To si tu má človek všetko stále vytvárať a vymýšľať sám ?
Príklad ovládania filtra, kde ako vstupné hodnoty môže slúžiť niekoľkonásobná nesúvislá oblasť, akurát (keďže nemáme reálnu prílohu) netuším, načo by ste niečo také potreboval...
Príloha s príkladom je kde ?
Mňa zatiaľ napadá len ťažkopádny vzorec.
Nerozumiem čo chcete. Ak nemáte na každom liste nastavenú hlavičku, tak toto nastaví rovnakú hlavičku pre všetky listy, ktoré sa majú tlačiť.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim WS As Worksheet
For Each WS In ThisWorkbook.Windows(1).SelectedSheets
WS.PageSetup.RightHeader = "&P/&N"
Next WS
Set WS = Nothing
End Sub
Teda príklad:
Označím na tlač Hárok1 a Hárok3 (Hárok2 vynechám), dám tlačiť. Pred samotnou tlačou pri náhľade ešte niesú hlavičky nastavené (záleží na konkrétnom používaní súboru). Nastaví sa to až pri stlačení čudlíku na tlačenie.
Na Hárku1 mám 1 tlačiteľnú stranu, na Hárku3 mám 3 tlačiteľné strany. Číslovanie strán vo výsledku bude.
1. strana Hárku1 - 1/4
1. strana Hárku3 - 2/4
2. strana Hárku3 - 3/4
3. strana Hárku3 - 4/4
Ak by sa Vám počet listov nemal meniť, a stále máte tie isté listy, len meníte obsah a rozsah, tak si označte všetky listy, nastavte im hlavičku ako bolo písané, a to minimakro nepotrebujete. Takto to funguje na E2016.
Ak chcete niečo iné, vložte aj prílohu, lebo teda aspoň ja fakt netuším čo iné by ste mohol chcieť ...
V bunke bude text:
="Zapsal dne: "&TEXT(TODAY();"d.m.yyyy")
="Zapsal dne: "&HODNOTA.NA.TEXT(DNES();"d.m.rrrr")
V bunke bude číslo (klasický dátum)
=TODAY()
=DNES()
+ Vlastný formát bunky
"Zapsal dne: "d.m.yyyy
Napr.
V G by ste mal obaliť vzorec do
=IF(D18="";""; vzorec )
v H obalit do
=IF(OR(E18="";F18="");""; vzorec )
v L obaliť do
=IF(OR(E18="";F18="");""; vzorec )
Na liste Země:
v F2 dať napr.
=$F2/3
v G2 napr.
=$F2/3*2
v H2 napr.
=$F2
Vzorce potiahnutím skopírovať až dole.
A ejhľa, hneď máte iné výsledky. A vyvstanú iné problémy - zaokrúhľovanie. Aj v Země, aj prehľade, či celkových súčtoch v Business trip abroad.
Čo riešite v M,N,O,S,T ? V "S" dokonca ani nieje E27 a E19 vzorec. "T" sa ničím nemení.
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.