Nie, podmienený formát pre objekty nefunguje. S tým prepočtom bude rýchlostný problém. Ak nie na tlačítko, dá sa to naviazať na udalosť Calculate, ktorá bude vyvolaná ale pri každej zmene bunky, pri každom filtri v KT. To bude pomalé.
EDIT:
Keby išlo len o pivotku tak udalosť PivotTableUpdate. To ale samozrejme nereaguje na zmenu dát v bunkách, či už manuálnu alebo vzorcom.
Mrk sem
Určite to pôjde, ale bola by lepšia nejaká príloha pre predstavu o čo presne ide. Je potrebné skutočne hľadať posledný vyplnený riadok v Tabuľke??? Tam sa nastavuje vzorec na celý stĺpec - automaticky sa dopĺňa. FormulaHidden určo nefachá - chýba tam bodka. Vy chcete dopĺňať dáta až za posledný vyplnený riadok MaxR? O veľkosti R, S? REPT je tam z dôvodu 0? Teda ťaháte dáta cez vzorec z iného zošitu? Nerobí REPT problém s nejakým formátom čísla a pod? Dá sa to aj cez podmienku IF. Dajte prílohu...
Predpokladám, že v B1 na hlavička. Stačí do L10 napísať vzorec
=SUM(B:B)
=SUMA(B:B)
Textovú hlavičku v B1 to bude ignorovať.
Dá sa aj zisťovať zaplnenosť stĺpca, na ktorom riadku je posledná hodnota, a brať do úvahy napr. aj filter, ale to je pre Vás zatiaľ zbytočné, keďže ste nedala príklad...
Tak dajte hľadať iba M28 namiesto "*"&M28&"*"
Vlastný formát
[Zelená]# ##0,00;[Červená]-# ##0,00
Sub Zmazat_listy_0()
Dim sL As String, Pocet As Integer, WS As Worksheet
With ThisWorkbook
For Each WS In .Worksheets
If Left(WS.Name, 1) = "0" Then
Pocet = Pocet + 1
sL = sL & IIf(sL = "", "", "•?") & WS.Name
End If
Next WS
If Pocet = 0 Then
MsgBox "Listy začínajúce ""0"" neexistujú.", vbInformation
Else
If Pocet = .Worksheets.Count Then
MsgBox "Nie je možné odstrániť všetky listy v zošite.", vbCritical
Else
Application.DisplayAlerts = False
.Worksheets(Split(sL, "•?")).Delete
Application.DisplayAlerts = True
End If
End If
End With
End Sub
To je jednoduché. Tu máte aj s ignorovaním prázdnej bunky, s ošetrením chyby pri rozdielnej výške Tabuliek, a aj variant s kontrolou inde ako na danom čísle riadku. Pri objekte Tabuľka sa netreba starať o rozsah a vzorce v ňom - to sa automaticky doplňuje.
Jeden z príkladov, konkrétne s použitím vloženia a prevodu vzorca na hodnotu. Samozrejme sa dá urobiť aj prechod cyklom. Bude záležať ešte na veľa veciach. Napr. zisťovanie počtu riadkov závisí od toho, či sa okolo dát nachádzajú nejaké iné nesúvisiace dáta, či sú riadky filtrované apod, či treba uchovávať predchádzajúcu hodnotu v Q, či je nejaké obmedzenie počtu riadkov ...
Nie je možné použiť namiesto tabuľky objekt Tabuľku, a v nej nechať dynamicky sa meniaci vzorec, bez makra?
V tom prípade by bolo asi lepšie, urobiť zlučovací PQ dotaz priamo z tých zdrojov pripojiť ho do KT, alebo ho nechať načítať dáta do modelu, ak treba viac KT, a tie postupne vytvárať z dátového modelu. Čiastočne to už mám, len to treba ešte dokončiť.
Pr. ?
Alebo Vy chcete spracovať v PQ priamo tie skryté listy "Směna_A_(souhrn_2023)" a "Směna_B_(souhrn_2023)" ?
Pr.
Tak?
"jakémkoliv sl" ale mená sú iba v stĺpci A.
"na řádku Jména" myslíte v stĺpci A.
"v listu1" myslíte List2.
V akých ďalších stĺpcoch ešte budú mená?
Nebolo by lepšie urobiť hypertextové odkazy, počítané {fnc HYPERLINK()} a zobrazené vedľa mien- bez makra?
Makrom to samozrejme pôjde.
Iba z brucha do O13
=TODAY()
=DNES()
do P13
=VLOOKUP($O$13;$A$5:$K$1000;COLUMN(B1);FALSE)
=SVYHLEDAT($O$13;$A$5:$K$1000;SLOUPEC(B1);NEPRAVDA)
a P13 roztiahnuť po X13
ale neskúšam to ...
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.