Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   další » ... 289

Tak nejdem zase písať elaborát o PQ. Ide tam vlastne hlavne o to, aby sa ošetrila možnosť, že budete/nebudete chcieť odfiltrovať chyby. Pretože na hromadné odfiltrovanie hodnôt sa použije List (zoznam), ale ten musí byť pre filter iba s jedinečnými hodnotami, a tie sa nedajú v Liste dosiahnuť, ak obsahuje Error. Preto čáry-máry s nahrádzaním za text "CHYBKA". Pre prípad, keď nebudete chcieť odfiltrovať chybu, je tam krok Priprava, ktorý v dátach mení chybu na "CHYBKA" iba v prípade, že odfiltrovávací List obsahuje "CHYBKA".
List.Distinct - jedinečné hodnoty
List.Transform - zmení hodnoty v Liste
each try Mazat{_} otherwise "CHYBKA" - nahradí chybu
List.Contains - test, obsahuje/neobsahuje danú hodnotu
each not List.Contains - vyberie iba riadky neobsahujúce nič z Listu

Tak to určite nie cez otváranie súborov. Extrémne pomalé. Listy, z ktorých budete čerpať údaje, sa volajú vo všetkých súboroch rovnako? Adresa údaju je na každom liste a vo všetkých súboroch rovnaká? Kopírovať treba iba hodnotu, alebo aj formát bunky, orámovanie, farbu a pod?

Priložte prílohu s príkladom. Riešením by bolo použiť "dolovacie vzorce" (čo je fakt rýchle, bez otvárania súborov) alebo PowerQuery (pre Office 2010+, bez makra a bez otvárania súborov).

Riešenie cez PowerQuery. Vypĺňate iba vstupnú Tabuľku na List1 a na liste Nastavenie nastavíte požadované parametre. Na liste PQ dáte iba Obnoviť všetko.

Tak to určite nestačí. Veď je tam niekoľko Definovaných názvov, ktoré to počítajú. Inak by to bol ohromne zložitý vzorec.

Niektoré Addins idú zapnúť/vypnúť takto:
Sub ON_OFF_ADDIN(ONOFF As Boolean)
Dim AD As AddIn
For Each AD In AddIns
Select Case AD.Title
Case "Euro Currency Tools", "niečo iné"
AD.Installed = ONOFF
End Select
Next AD
Set AD = Nothing
End Sub

Sub Zapni()
ON_OFF_ADDIN True
End Sub

Sub Vypni()
ON_OFF_ADDIN False
End Sub

Len info pre ostatných, ak by mal niekto podobný problém. Prišli sme na to, že problém nastáva pri kopírovaní CZ diakritiky. Konkrétne písmeno "ř" sa mení na znak priemeru "ø". Po ošetrení sa zdá, že nám to fachá.

Ale kontrolovať to nejdem...

Pridané riešenie PQ

Dnes ma neskutočne bolí rameno. Človek by neveril, ako hýbe ramenom pri prekladaní ruky z myši na klávesku. Ak to nepovolí, nerobím dnes ani prd ... sorry.

Vy makrom navyšujete alebo ponižujete hodnotu v bunkách. To nepôjde. Odkazovali by samé na seba - zacyklený odkaz. Neviem, či je možný na webe iretačný výpočet. Ak aj áno, je s tým naprd práca. Ľahko prídete o hodnotu.

"On Error Resume Next" som použil naschvál, kvôli tomu aby som sa o prípadnej chybe dozvedel, a dal ju najavo zvýraznením. Naproti tomu Val() bude chybu ignorovať. Viac riadkov kódu má svoje výhody. Z čoho vyplýva, že programovať robustný SW je vždy zložité, takže zabudnite na jednoriadkové všemakro na obsluhu TextBoxov pri použití na to, na čo neboli navrhnuté - na počítanie.

A tým sa dostávam k otázke: Prečo nemôžete použiť v Exceli jeho základnú funkcionalitu, na ktorú bol navrhnutý - počítanie v bunkách ???

50 TextBoxov má navzájom interagovať?

Private Sub TextBox2_Change()
Pocet_Prac_Hod
End Sub


Private Sub TextBox3_Change()
Pocet_Prac_Hod
End Sub


Sub Pocet_Prac_Hod()
Dim Vysledok As String
On Error Resume Next
Vysledok = TextBox2.Text * TextBox3.Text
TextBox4.Text = Vysledok
TextBox4.BackColor = IIf(Err.Number = 0, vbWhite, rgbOrange)
End Sub

Skúste sa zaregistrovať a priložiť prílohu, páč neviem, čoho chcete dosiahnuť ...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim StartDate As Date
With ThisWorkbook
StartDate = CDate(.Worksheets("Hárok2").Range("I2").Value)
With .SlicerCaches("NatívnaČasováOs_Dátum").TimelineState
If .EndDate < StartDate Then MsgBox "Štart je väčší ako Koniec", vbExclamation: Exit Sub Else .SetFilterDateRange StartDate, .EndDate
End With
End With
End Sub

?
Sub AMU_1() ' AMU_1 Makro
With Worksheets("DATABAZE ZAMESTNANCU")
.Unprotect Password:="pekarna"
With .ListObjects("Tabulka1")
'vyfiltruje iba to, čo končí na *AMU1
.Range.AutoFilter Field:=4, Criteria1:="=*AMU1", Operator:=xlAnd
With .Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("Tabulka1[[#All],[příjmení, jméno]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True, Password:="pekarna"
End With
End Sub

V tomto súbore "ZoradenieLog.xlsm" som pridal 2 makrá na Log.
makro VytvorLog
makro XLog
a na začiatku premennú
Dim Subor As String
V tomto mojom skúšobnom súbore to teda je nastavené, ale chcem od Vás:
-vytvorte si kópiu toho Vášho súboru
-otvorte ju, a skontrolujte či 1 dátový riadok Tabuliek neobsahuje citlivé info (RČ, meno, mail, telefón, adresa). Ostatné riadky okrem hlavičky a 1. riadku Tabuliek, nebudú do logu zahrnuté, ani iné dáta mimo Tabuliek (objekt Tabuľka). Tieto citlivé dáta zmeňte, ale tak, aby presne zodpovedali forme predchádzajúcich, veľké malé písmená, formát číslo, text, dĺžka, počet medzier (s medzerami vôbec nehýbte, nemažte, neprepisujte, iba ich obíďte kurzorom, teoreticky môže byť chyba aj v nesprávnych medzerách Alt+0160 vs Alt+032), nemeňte vzorce, neredukujte dáta, ani nevymazávajte celé bunky, riadky, stĺpce.
-vložte na začiatok do modulu makier tú deklaráciu premennej
Dim Subor As String
a na koniec modulu makier vložte tie 2 makrá VytvorLog a XLog
-takže máte 2 súbory s tými novými makrami (VytvorLog, XLog), teda súbor "ZoradenieLog.xlsm" a kópiu Vášho súboru.
-v oboch súboroch spustite makro "VytvorLog", pričom dajte pozor, z ktorého modulu ktorého súboru makro spúšťate. Nepomýlite sa, ak bude otvorený vždy iba 1 súbor.
-spustenie je nevyhnutné urobiť na oboch PC, teda aj na tom s Office pre domácnosti, kde to šlo, aj na tom s Office Enterprise.
-pri každom súbore vznikne textový log tam, kde sa súbor nachádzal, a to v takomto tvare:
Log_13.02.2023_09_17_24_Zoradenie.xlsm.txt
-takže dokopy budú 4 txt logy.
-tieto logy, si ešte pozrite, či v nich nie sú citlivé dáta, a pripadne opakujte od kroku s úpravou dát v 1. dátovom riadku
-tie 2 logy, ktoré sú z Enterprise, ešte označte na začiatku názvu "E_...názov súboru"
-tieto 4 logy mi pošlite, či už ich spolu zabalíte, alebo pošlete v 4 postoch, alebo mi ich hoďte na mail (mám ho v info v profile).


Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   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