Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  155 156 157 158 159 160 161 162 163   další » ... 286

Musíte sa zaregistrovať, aby ste mohol prikladať prílohy (.xlsm musíte zazipovať, ostatné rovno vložiť).

?
=IF(COUNTIFS(G$2:G2;G2;F$2:F2;F2)=1;SUMIFS(D:D;G:G;G2;F:F;F2);"")
=KDYŽ(COUNTIFS(G$2:G2;G2;F$2:F2;F2)=1;SUMIFS(D:D;G:G;G2;F:F;F2);"")

Vy stále píšete že chcete v matke "spúšťať makro v otvorených zošitoch". To je úplne zlý popis. Vy chcete spúšťať matkine makro nad otvorenými zošitmi. To je niečo úplne iné. To čo voláte teraz je "makrobla", ktorý v tých otváraných súboroch nieje. Tam je "makro26".

Čo chcete teda robiť ?

Namiesto xlApp.Run... použite:
Call Vykonavacie_makro(xlApp.ActiveWorkbook)
A na konci procedúry "nejmakro" zabúdate zrušiť inštanciu (čo na to správca procesov vo Win ? Koľko tam máte Excelov pri ladení ?).
xlApp.Quit
Set xlApp = Nothing


Vykonávacie makro, umiestnené v matke:
Sub Vykonavacie_makro(WB As Workbook)
'POZOR ! Do A1 napíše "Halóó" !
'Sem vložte požadované operácie nad otvorenými zošitmi,
'ale POZOR (!) vždy sa na zošit odkazujte cez premennú WB,
'ktorá teraz obsahuje zošiť z xlApp.
WB.Worksheets(1).Cells(1, 1).Value2 = "Halóó"
End Sub

Ak myslíte "vidieť" ako v zozname dostupných makier pri priraďovaní napr. tlačítku, tak tam to predpokladám nebude z jednoduchého dôvodu - je to iná inštancia Excelu. Teda samostatne spustený program, ktorý nemá z inými nič spoločné. Môžete k makrám pristupovať iba cez premennú xlApp, čo je odkaz na tú druhú inštanciu Excelu. Nemám čas to skúšať, je to len domnienka.

Vpravo som Vám pre kontrolu dal aj celé poradie. Niektoré stĺpce by sa dali porušiť, podľa toho, aké informácie požadujete mať zobrazené (rozhodujúce body, 2x celkové body, 2x meno, a pod...)

To na pridanie riadku Enterom nestačí. Na to je treba ešte nastaviť EnterKeyBehavior = True. A automatické "riadkovanie", teda odsúvanie slov na ďalší riadok rieši WordWrap = True.

A prečo to musí byť také komplikované ? Veď si iba niekde ukladajte číslo riadku na ktorý ste klikol (teraz som to dal v liste "B1" do bunky A2), a v liste "C1" sa Vám to naindexuje samé vzorcom.

EDIT: A to som nespomenul, možnosť urobiť to výberovým zoznamom, bez makra, ale to už nestíham, možno večer ak bude treba.

Súbor - Možnosti - Rozšírené - Zobraziť možnosti pre tento hárok - Zobraziť zlomy strán.

alebo potom makrom
ActiveSheet.DisplayPageBreaks = False

Sub BARVA()
Dim RNG As Range, Oblast As Range, Riadkov As Long

Set Oblast = ActiveSheet.Range("A19:A38")
On Error Resume Next
Set RNG = Oblast.SpecialCells(xlCellTypeVisible)
Riadkov = RNG.Cells.Count


If RNG Is Nothing Or Riadkov <> Oblast.Cells.Count Then
If MsgBox("Pro zapnutí makra je nutné zrušit všechny filtry." & vbNewLine & "Chcete zrušit filtr?", vbExclamation + vbYesNo) = vbNo Then GoTo KONIEC
ActiveSheet.ShowAllData
End If
On Error GoTo 0

With Oblast.Resize(, 21).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With

KONIEC:
Set Oblast = Nothing: Set RNG = Nothing
End Sub

Domnienku o nepotrebnosti 1. a 8. podmienky beriem späť. Tu máte prerobenú verziu, ktorá môže mať 2-3 rovnaké sady hodnotení. No ak budú 4 a viac, potom zvyšné vynechá. Poriešil som to nakoniec s tými číslami ... nie textom.

Celé je to o tom, urobiť si nejaký medzi sebou porovnávateľný parameter podľa pravidiel.
Teda:
-Ako sa boduje máte jasne dané
-Zrátanie bodov máte jasne dané (prvý parameter porovnania)
-Počet jednotlivých bodových stupňov (ďalších 6 parametrov porovnania), to tam máte
-Rozstrelové body, ako váha jednotlivých bodových stupňov (posledný parameter podľa pravidiel) tam máte

Aby sme nemuseli robiť veľa pomocných stĺpcov s rôznymi RANK a hľadaním previazaných výsledkov, urobíme z tých všetkých podmienok jeden parameter, ktorý bude jednoznačný, a budeme v ňom hľadať najvyšší, a menší a menší ...

Podm1 & Podm2 & Podm3 & Podm4 & Podm5 & Podm6 & Podm7 & Podm8

Tá matica v stĺpci BK tam nemusí byť, možete ju nahradiť dlhším nematicovým:
=IF(B4="";"";TEXT(AR4;"000")&TEXT(AD4;"00")&TEXT(AE4;"00")&TEXT(AF4;"00")&TEXT(AG4;"00")&TEXT(AH4;"00")&TEXT(AI4;"00")&TEXT(BJ4;"0000"))
=KDYŽ(B4="";"";HODNOTA.NA.TEXT(AR4;"000")&HODNOTA.NA.TEXT(AD4;"00")&HODNOTA.NA.TEXT(AE4;"00")&HODNOTA.NA.TEXT(AF4;"00")&HODNOTA.NA.TEXT(AG4;"00")&HODNOTA.NA.TEXT(AH4;"00")&HODNOTA.NA.TEXT(AI4;"00")&HODNOTA.NA.TEXT(BJ4;"0000"))


Mne tam tá matica zostala vlastne len preto, že som z prvopočiatku chcel mať z toho číslo, ktoré potom pomocou LARGE() budem radiť, ale také dlhé číslo nieje možné použiť, lebo Excel nepripočíta už posledné čísla. To je nepodstatné.

Podstatné je, že až teraz, keď sa nad tým znovu zamýšľam, uvedomujem si, že nieje logicky možná aby bolo dosiahnuté iné ako správne umiestnenie aj keď použijeme ako združenú porovnávaciu hodnotu len počty bodových stupňov. Teda:
AABBCCDDEEFF (pre prvý riadok je to "010206030101")

To má totiž samo o sebe rovnakú výpovednú hodnotu ako to čo som uviedol pred tým, lebo 1. a posledná porovnávacia podmienka sú tvorené a závislé na presnej kombinácii týchto 6 bodových hodnotení.

Obe riešenia majú Achillovu pätu - rovnaký počet rovnakých známok.

Nikto ? Tak potom mrknite...

Ak to bude text "125:10" tak môžete použiť:
=TIMEVALUE("0:"&A1)
=ČASHODN("0:"&A1)

Všetko má +-. Dajte do bunky vzorec "=22/7". Formát nastavte na 7 desatín.
Ak bunka nieje dostatočne široká, Cells.Text vráti ##### mriežky. Ak použijete NumberFormat dostanete správne číslo, ale ak bude formát "General", dostanete pri Text správne číslo (ak je bunka dosť široká), a pri NumberFormat dostanete "Ge25eral". Preto nahrádzam "General" buď reťazcom "" alebo "@". To ale nefunguje pri viacnásobnom vlastnom formáte.
Atď... Proste +-

To nemáte dávať do listu ani workbooku, ale do kódu formulára. Neviem aké údaje to má zožrať, ale občas treba myslieť aj na formát.
Private Sub UserForm_Initialize()
'Label1.Caption = List1.Cells(5, 4).Value2
Label1.Caption = Format(List1.Cells(5, 4).Value2, IIf(List1.Cells(5, 4).NumberFormat = "General", "", List1.Cells(5, 4).NumberFormat))
End Sub

Dajte do D5 dátum alebo číslo s 3 desatinami naformátované na 2 desatiny a uvidíte rozdiel.

EDIT: Iste, môžete použiť aj List1.Cells(5, 4).Text, ak je bunka dostatočne široká a neobsahuje chybu, je to jednoduchšie. Obe majú úskalia.


Strana:  1 ... « předchozí  155 156 157 158 159 160 161 162 163   další » ... 286

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