Příspěvky uživatele


< návrat zpět

Strana:  1 2 3 4 5 6 7 8 9   další » ... 298

Práveže to ide aj zapnúť aj vypnúť v pohode. Overené na 2007, 2013, 2024, 365. Len na každý ide iný reťazec odoslaných kláves. 2016 a 2019 nemám, a nechce sa mi vytvárať ďalšie virtuálky aby som nastavil správny reťazec. Ostatné sem pridám, práve mám rozrobené ošetrenie chýba a pod. len mám inú prácu...

Vyskúšal som to na 3 jazykových verziách O365. Všade mi to šlapalo. Akú máte verziu? Pozriem, či nemám takú vo virtuále a vyskúšam. Ak máte napr. O2016 nemusí presne sedieť menu, teda kurzor nabehne inde. Samozrejme jazyk. Preto som písal, že to treba dopilovať.

Ešte som zabudol: musíte to spúšťať napr. tlačítkom z listu, nie z VBA okna.

Tak ono teoreticky to je možné zmeniť nedobrovoľne, odoslaním patričnej sekvencie kláves. Lenže treba to ošéfovať pre rôzne verzie Office, ale hlavne použiť čo najmenej klávesových skratiek, lebo sú závislé na jazykovej mutácii. Tu je príklad EN vs SK/CZ. Do horného menu sa dostane raz cez Alt+S, inokedy cez Alt+F.
Sub Doverovat_VBA()
Dim LF As String
Select Case Application.International(XlApplicationInternational.xlCountryCode)
Case 1: LF = "f" 'EN
Case 421, 420: LF = "s" 'SK/CZ
Case Else:
End Select
If LF <> "" Then CreateObject("WScript.Shell").SendKeys "%(" & LF & "){UP 2}{ENTER 2}{PGDN}{TAB 2}{ENTER}{PGUP}{DOWN 6}{TAB 3}{ }{ENTER}{TAB}{ENTER}", True
End Sub

Okrem toho SendKeys (je jedno či Shell alebo Application) trpí vo VBA NumLock bugom. To by sa muselo ešte ošetriť, aby neostal prepnutý NL. Žiadna iná metóda (ani cez Register) sa mi nepodarila rozbehať. Iba toto.

EDIT:
Jáj, a nenapísal som ešte Imh0tep-ovi: Ako príklad, ako si vynútiť zapnutie makier, Vám môže poslúžiť tento príklad, čo som sem dal pár dní naspäť.
Takže najskôr vynútiť zapnutie makier, makro skontroluje a zapne dôveru vo VBA, potom kontrola dátumu, zmazanie modulov, zobrazenie listov. Bum hotovo. Len kopec omáčky ešte, kontroly a tak. No prečítajte si, čo sme so Stalker-om písali v tom vlákne o (ne)zabezpečení Excelu.

Iba nejaký modul či konkrétne makro alebo všetky triedy a moduly ?
Mazacie makro bude v inom súbore alebo v tom z ktorého sa má mazať ?
Ide teda aj o zmenu XLSM -> XLSX ?
Ten súbor bude počas toho otvorený a používaný ?

Niektoré prípady možné asi nebudú. Napr. si myslím, že nebude možné makrom zmazať samé seba. To bude treba vymyslieť. A možno komplikovane napr. cez novú inštanciu Excelu ...

Biela farba ? No predsa E22:G29 a E12:G17.

"...třeba na více etap..." No tak moment. To si máme vysvetliť tak, že medzi môžu byť aj pracovné dni, počas ktorých sa na projekte nepracovalo? Teda, že to nie je ucelená "zelená" (nepočítam víkendy) ??? To potom počty v E nebudú sedieť. Treba ich potom zrátať inak (napr. COUNTIF). Prípadne upresnite.

Trojbodka NIE SÚ tri bodky! Máte asi v automatických opravách 3 bodky na trojbodku. Koho napadlo "skryť" hodnoty bielou farbou ??? Nemá sa počítať iba určitý mesiac? Lebo tam je presah do ďalšieho.
Inak snáď som nezabudol na niečo z toho čo ste chcel...

Inak vzorce sa dajú všelijaké urobiť, napr. vzorec konca môžete dať
=IFERROR(LOOKUP(2;1/(J18:AZ18=".");J$10:AZ$10);"")
=IFERROR(VYHLEDAT(2;1/(J18:AZ18=".");J$10:AZ$10);"")

alebo v novších Office
=XLOOKUP(".";J18:AZ18;J$10:AZ$10;"";0;-1)

A to podmienené formátovanie na 3 bodky si radšej dajte
=OR(J12="...";J12="…")
=NEBO(J12="...";J12="…")

nech máte obsiahnuté obe možnosti, keď neviete ako budú nastavené automatické opravy v jednotlivých Exceloch.

Nejaký príklad. Ale riešiť, čo všetko dokáže užívateľ posrať, sa mi nechce.

Private Sub Workbook_Open()
Sheets("Sheet1").Unprotect Password:="yourpassword"
Sheets("Sheet1").Protect Password:="yourpassword", UserInterfaceOnly:=True
End Sub

Nevýhodou je, že to heslo musí byť v tom makre uvedené. Je treba zaheslovať aj VBA modul, ale to nie je nepriestrelné. Dá sa to obabrať. Excel nie je trezor.

Sub Uloz()
With ActiveSheet
.Shapes.Range(Array("Data", "FNe", "NOWRok")).Visible = False
ThisWorkbook.SaveCopyAs "D:\pokus\" & .Range("AC1").Value & ".xlsm"
.Shapes.Range(Array("Data", "FNe", "NOWRok")).Visible = True
End With
End Sub

Stačí procedúru pre nový stĺpec upraviť obdobne, ako pre nový riadok.

Tu som Vám upravil aj ostatné procedúry, a zároveň som sa snažil zmeniť vzorce tak, aby ich funkčnosť prežila aj mazanie riadkov a stĺpcov.

Skúste toto.

PS: Prílohu XLSM musíte zabaliť do ZIP.

A zadávate určite Formula2 ?
Nemôžete tabuľku naformátovať ako Tabuľku (objekt) ? Potom sa Vám vzorce doplnia samé.
Ak priložíte nejakú anonymizovanú prílohu, skôr sa dočkáte riešenia.

To je kvôli novému spôsobu vyhodnocovania polí (matíc). Budete to musieť asi vkladať v EN verzii a do Formula2
Worksheets("Hárok1").Range("L6").Formula2 = "=TEXTJOIN(""; "",TRUE,IF(N6:AS6>0,N2:AS2,""""))"
EDIT: Kolega ma predbehol. Ja preferujem vždy EN vzorce.

Zaškrtnutie na to nemá vplyv. To sa dá testovať bez odškrtávania. Záleží na tom, či majú byť vo výsledku zaškrtnuté alebo nie. Testuje sa najskôr, či bunka obsahuje nejakú hodnotu a zároveň je to číslo, a ešte navyše nie je číslo zapísané vzorcom. Až potom sa bunka zmaže. Teraz je na konci Select pre ukážku, tak si tam po overení aktivujte ten ClearContents.
No a to zmazanie CheckBoxov si aktivujte v prípade potreby aktivovaním riadku
rB.Offset(0, 3).ClearContents
Sub Smazat()
Dim rB As Range, rDel As Range, i As Long, B()

Set rB = Worksheets("List1").Range("B2:B25")
B = rB.Value2

' rB.Offset(0, 3).ClearContents 'stačí zmazať stĺpec E, prázdna bunka je pre CheckBox ako FALSE/NEPRAVDA, ale v tomto prípade to asi netreba

For i = 1 To UBound(B, 1)
If LenB(B(i, 1)) <> 0 And IsNumeric(B(i, 1)) Then 'je niečo v bunke a zároveň je to číslo?
If Not rB.Cells(i).HasFormula Then 'a ešte k tomu to nie je vzorec
If rDel Is Nothing Then Set rDel = rB.Cells(i) Else Set rDel = Union(rDel, rB.Cells(i)) 'tak pridaj bunku do oblasti na zmazanie
End If
End If
Next i

If Not rDel Is Nothing Then rDel.Select 'ClearContents 'zmaž oblasť na zmazanie
End Sub


Strana:  1 2 3 4 5 6 7 8 9   další » ... 298

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje