Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  167 168 169 170 171 172 173 174 175   další » ... 298

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.

OT: Súhlasím s Vami, a už som sa tu raz za to tituloval (dobrák = blbec). Dnes je proste už taká doba, že dobrák je považovaný za otravu a blbca, dobrosrdečnosť za takmer asociálne správanie, nezištnosť za duševnú poruchu. Zlepšiť sa to nezlepší, taký idealista nieje nikto. Ľudia sa v histórii totiž ešte nikdy nepolepšili, to je proste fakt.

Sranda ale je, že na FB ľudia nahádžu tonu hovadín denne, stovky nezmyselných "lajkov", ľuďom ktorý pre nich nič neurobia, ani nevedia pomaly kto to je, vždy majú potrebu všetko komentovať a zapájať sa do klikacích kampaní na témy o ktorých nič nevedia ... Ale keď majú poriadne popísať, oprílohovať, poskytnúť výsledok, alebo len poďakovať (nie tento prípad) či akokoľvek reagovať na riešenie svojho vlastného nevirtuálneho problému, ticho.

Ale čo už, zatiaľ vládzem ... aaááá svetový mier ...

Prílohy sa "zásadne" nedávajú. Nielen tu, ale nikde na fórach. Ach jaj, len dokedy si to budú ochotný ešte vytvárať riešitelia sami ...

Takže ak by tu niekto podobné niečo hľadal (lebo o zverejnení výsledku platí to isté ako o prílohe s príkladom), tak dávam jeden podobný vymyslený príklad.


Strana:  1 ... « předchozí  167 168 169 170 171 172 173 174 175   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