Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  197 198 199 200 201 202 203 204 205   další » ... 286

Na zmenu vyfarbenia víkendov som zmenil Podmienené formátovanie. Mrknite tam. Čo máte urobiť ďalej neviem, lebo neviem čo ďalej chcete.

Aha, tak nieje to funkčné. Zabudol som na podstatu zadanú na začiatku. A to, že si potrebujete pozrieť vzťahy medzi bunkami v Overeniach a bunkami listu. To by v tomto prípade s použitím pomocného listu nefungovalo. Musí to byť na tom istom liste, ktorý je kontrolovaný, lebo adresy buniek v Overení nemajú prefix listu. Takže takto. No a ak by ste to chcel aj zoradené, tak použite tú druhú metódu Najdi2.

Niečo v tých bunkách X11:Y42 je. Označte si ich, a pozrite do Overenia. Nič tam nieje. Ale stlačte tam "Vymazať všetko", potvrdte, a spustite makro. Už tam nebudú figurovať.

Na základe čoho ich zoraďuje netuším. Keď som Vám totiž posielal prílohu, tak ich zoradil inak, ako keď som to isté spustil teraz :)

EDIT: A ešte si čeknite, prečo Vám dávajú niektoré Overenia chybu #HODNOTA.

Áno dalo. Akurát neviem, či majú byť aj rovnako úzke ako víkendy. Pridal som do makra na začiatok 2 konštanty, pomocou ktorých si určíte pozíciu kalendára. Ale pozor, najskôr umiestnite kalendár na pozíciu kde ho chcete mať (pridaním/odstránením riadkov/stĺpcov) a potom zmente konštanty určujúce pozíciu ľavej hornej bunky (teda výberového zoznamu). Dalo by sa urobiť, aj aby sa dal prispôsobiť aj počet mien, ale to už je komplikáciu ak by bolo potrebné meniť počet mien počas zabehnutej DB. Muselo by sa úplne inak urobiť to makro.

Chybu spôsobujú Zlúčené bunky. Pretože ako použité v Overení sú samozrejme označené, ale neobsahujú žiadne overenie. Len prvá z nich. Dá sa to poriešiť takto.

Pr. matica

Áno, žiaľ. Ak je v zošite jediný list, tak je šumák, aký názov sa napíše, automaticky vloží správny odkaz na správny (jediný) list. No ak ich je viac, nespapá to. 7

Jediné čo mi tam na prvý pohľad bije do očí ohľadom pamäti je práve to spomínané neuvoľňovanie 4 objektov v rekurzii. A ohľadom rýchlosti mi nesedí nepredstaviteľné množstvo volaní listov a buniek. Ja by som to prerobil na polia. To by malo pri takomto množstve volaní podstatne pomôcť v rýchlosti. Neviem či to zvládnte, alebo či to bude možné (tak dopodrobna som to zas neskúmal). A farbu by som nastavil cez PF asi.A možno aj ExecuteExcel4Macro by sa dalo nahradiť tak, že by sa do listu Data vložil vzorec na všetky testované súbory, a tie čo nemajú daný list by hodili chybu. No a tie chyby potom vybrať pomocou SpecialCells a zmazať riadky.
Ale ako vravím, príliš som to neskúmal.

Ak by bolo potrebné údaje aj "databázovať", tak som pripravil ten spomínaný variant 3.

Aj tak mi nieje jasná jedna zásadná vec. Vy chcete
1. mať vyplnené napr. listy pre každý mesiac, a jeden list napr. kontrolný, v ktorom si kliknete na mesiac, a do kontrolnej tabuľky sa Vám načítajú vzorcami údaje zo zvoleného listu zvoleného mesiaca.
2. mať uni-šablónu na odátumovanie tabuľky, kde si zvolíte mesiac, a do tejto tabuľky potom vpisujete údaje. Keď si zvolíte nový mesiac, predátumuje sa tabuľka, vymažete si predošlé údaje, a vpisujete nové.
3. viď 2., ale s tým, že sa staré údaje uchovávajú niekde v databázovom liste, odkiaľ sa makrom pri zmene mesiaca (ak tento existuje v DB) načítajú.

To sú zásadné rozdiely, určujúce prípadné riešenie.

Iný príklad:
Public Sub Najdi()
Dim rd As Single, aVAL(), RNG As Range, Cell As Range, E As Long

ReDim aVAL(1 To 2, 1 To 1)
aVAL(1, 1) = "Vzorec": aVAL(2, 1) = "Buňka"
rd = 1

On Error Resume Next
Set RNG = Worksheets("Data").Cells.SpecialCells(xlCellTypeAllValidation)
E = Err
On Error GoTo 0

If E = 0 Then
ReDim Preserve aVAL(1 To 2, 1 To RNG.Cells.Count + 1)
For Each Cell In RNG
rd = rd + 1

With Cell
aVAL(1, rd) = .Validation.Formula1
aVAL(2, rd) = .Address
If .Validation.Formula2 <> "" Then
ReDim Preserve aVAL(1 To 2, 1 To UBound(aVAL, 2) + 1)
rd = rd + 1
aVAL(1, rd) = .Validation.Formula2
aVAL(2, rd) = .Address
End If
End With

Next Cell
Set RNG = Nothing: Set Cell = Nothing
End If

With Worksheets("Overenie")
.Range(.Cells(1, "CB"), .Cells(Rows.Count, "CA").End(xlUp)).ClearContents
.Cells(1, "CA").Resize(rd, 2).Formula = WorksheetFunction.Transpose(aVAL)
End With
End Sub

EDIT: malá úprava podľa nápadu Jeza.m s iným druhom Formula2 (pri rôznych typoch Validation)

Pretože sa v liste nenachádza žiadne xlCellTypeAllValidation, a nieje čo Selectnúť.

marjankaj má na mysli niečo takéto (maticovo):
=SUM(LEFT(C1:C4;FIND("-";C1:C4)-1)*1)&"-"&SUM(RIGHT(C1:C4;LEN(C1:C4)-FIND("-";C1:C4))*1)
=SUMA(ZLEVA(C1:C4;NAJÍT("-";C1:C4)-1)*1)&"-"&SUMA(ZPRAVA(C1:C4;DÉLKA(C1:C4)-NAJÍT("-";C1:C4))*1)

alebo
=SUM(LEFT(C1:C4;FIND("-";C1:C4)-1)*1)&"-"&SUM(REPLACE(C1:C4;1;FIND("-";C1:C4);"")*1)
=SUMA(ZLEVA(C1:C4;NAJÍT("-";C1:C4)-1)*1)&"-"&SUMA(NAHRADIT(C1:C4;1;NAJÍT("-";C1:C4);"")*1)

Napr. ?

Pr.


Strana:  1 ... « předchozí  197 198 199 200 201 202 203 204 205   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