Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  257 258 259 260 261 262 263 264 265   další » ... 302

Niekedy sú odpovede dosť narýchlo, a keď človek raz za mesiac či dva skúšobne použije Select, okamžite ho kameňujú. Au. 1
Nikto niesme (chvalabohu) neomylný.
Sub SkocNaDatum3()
Dim V
On Error Resume Next
With Worksheets("List1")
V = WorksheetFunction.Match(Format(Date, "d.m.yyyy"), .Rows(1).Value, 0)
If Err Then MsgBox ("Dátum " & Date & " sa na List1 nenachádza.") Else Application.Goto .Cells(1, V)
End With
End Sub

Aby niekto nepovedal, že Application.Match je pomalšia ako WorksheetFunction.Match, tak som to vymenil a adekvátne zmenil odchyt chyby. Pridané zjednodušenie With a samozrejme podnet na opravu od xlnc.

Nieje nič zlé na tom, ak užívateľ chce tlačítko namiesto aktívneho textu. Naozaj nič. Tlačítko je oproti aktívnemu Shape do očí bijúce, a každý okamžite očakáva udalosť. To že tlačítka vyzerajú predpotopne, no kvôli tomu novú Class vytvárať nebudem. Ak chce niekto GlassButton, nech si vloží obrázok z netu, či vytvorí v PS, a aktivuje.

OT: Či sa bude v dnešnej dobe pýtajúci sa snažiť prísť veci na kĺb? Máte opäť pravdu, je to naivná idea. Teraz nemám na mysli konkrétne užívateľa Merlin99. Dnes, keď má každý možnosť napísať dotaz na 10 fór, kde mu dobrovoľníci zadara tŕn z päty vytrhnú, tak v 50% prípadov to dopadne tak, že sa ani neunúva odpovedať, nieto ešte študovať riešenie.
Kde sú tie časy keď som sa učil Basic z časopisu Elektrón, a keď som úplne sám naprogramoval v Assemblery na PMD-85-3 môj prvý skutočný program, obrovské digitálne hodiny, pamätám si aký som bol šťastný, pyšný, a áno aj "obdivovaný". Dnes je to iné ... Neviem, či prichádzate do styku s mladou dženerejšn, ak nie, tak verte, že by ste sa divili, aké sú predstavy mladých o tom, čo všetko musia dostať, okamžite, zadara, všade, vždy, a čo oni nemusia (učiť sa už vôbec nie). Asi do smrti budem spomínať na mladého administrátora, ktorý za svet nevedel dostať pár mailov z jedného do druhého PC.
Nikto z neba múdry nespadol, ale nie každý by musel do neba aj hlúpy znova vystúpať. Takže, ak je aspoň nejaká odozva od užívateľa, hneď to beriem pozitívne. 1

To je presne to čo mi nešlo, transponovať vnútorné vzorce. Treba na to ísť len inak, a ono to ide krásne. Palec hore.

To čo som Vám minule poslal funguje či nie ? Teraz som to doplnil o roslišovanie, či sa jedná o prázdnu bunku H alebo 0, previedol na ExcelTable. Pridávanie vzorca v G funguje automaticky, vyhodnocuje to správne, tak neviem, podľa mňa OK.
Tým makrom si môžete naformátovať aj ExcelTable, nemusí byť farebná, zvýraznená ob-riadok, ani mať filtrovacie tlačidlá, ani orámovanie..., stĺpce môžu mať inú šírku alebo rez písma.

Ak ExcelTable nechcete, a chcete mať dynamické pridávanie toho vzorca, tak jedine použitím Worksheet_Change metódy, v ktorej si podľa toho ktorý riadok bol pridaný vyplníte vzorec. Chcete aj toto predviesť ?

Na liste B je v I1 teraz aktuálny dátum vložený funkciou, ak si tam chcete napísať iný dátum, len funkciu prepíšte iným dátumom.

@Tartyf: Skúste toto. Vysporiada sa to aj s hromadnou zmenou. Posledné AKTIVACE sú vždy na konci. Na konci makra si len zvoľte či to chcete mať na druhý list, alebo na ten istý (v tomto prípade premiestnite apostrof z toho Cells... na to Worksheets...).

@marjankaj: "nová záložka" Tartyf tým myslí nový list.

@xlnc: uživateľa Pitr tiež nechápem.

@Pitr: Skúste dať prílohu. Váš popis je pre Vás zrozumiteľnejší ako pre nás. 1

@xlnc: Dobrý návrh. Ak bude vyhovovať takéto riešenie, tak tu je jeden návrh:
=HYPERLINK("#'List1'!"&ADDRESS(1;MATCH(TODAY();List1!$1:$1;0));"Skok na List1")

Tak ?
Ak áno, tak si môžete previesť tabuľku na ExcelTable, a ten vzorček Vám bude samé pridávať do nových riadkov.

alebo niečo takéto bez cyklu:
Sub SkocNaDatum2()
Dim V
V = Application.Match(Format(Date, "d.m.yyyy"), Worksheets("List1").Rows(1).Value, 0)
If IsError(V) Then MsgBox ("Dátum " & Date & " sa na List1 nenachádza.") Else Worksheets("List1").Activate: Worksheets("List1").Cells(1, V).Select
End Sub

Public wbPracovni As Workbook

Sub pok1()
Set wbPracovni = ThisWorkbook
End Sub

Sub pok2()
MsgBox wbPracovni.Name
End Sub


To nastavenie premennej urobte rovno v Workbook_Open
Ale prečo nepoužijete rovno volanie ThisWorkbook namiesto wbPracovni ?

PS: A naplnenie môžete robiť pri otvorení zošita
Private Sub Workbook_Open()
Call pok1
End Sub

Presne tak, skopírovať si najmä dlhší príspevok pred odoslaním, je veľmi dobré si osvojiť. Veľa krát pomohlo. Ale zase na druhej strane tu nie sú reklamy - zatiaľ.

No to nepôjde, pretože to je proti logike filtra. Ja som to čo požadujete sprevádzkoval tak, že som druhý list vôbec nepoužil. Stĺpce C:I som skopíroval do listu 1. Na A1:J1 som aplikoval štandardný filter (klik na lievik). Potom v C1 kliknite na šípku - Clear - AK. A máte to, môžete vypĺňať relevantné dáta v ostatných stĺpcoch. Ak chcete zobraziť/upravovať iné alebo všetky, tak opäť klik na šípku v C1 a Select All alebo Clear - FR (alebo čokoľvek iné).
Iba takto Vám ja dokážem pomôcť.
PS: Názov mesiaca by som vymenil s prvým riadkom, aby sa nevyfiltrovával.

OT: Keď už sa niečo dostane do červených čísel, tak za to väčšinou môže management 1

Podľa mňa bude potrebné, aby aj tie ostatné stĺpce boli v tej zdrojovej tabuľke v prvom liste.

Toto Vám vypíše ale aj keď pridávate prílohu priamo vo formáte XLS, alebo je príloha v RAR/ZIP väčšia ako 256 KB.

No skúsim to ešte raz. Odmyslite si tú medzikrokovú tabuľku, vôbec na ňu nemyslite, nemáte ju, nikdy ste ju nevideli. Viete ako by mal vyzerať výsledok v tej (nechcem povedať transponovanej) "poslednej" tabuľke. Viete aké výpočty nad dátami zo zdrojových tabuliek máte urobiť. Tak si tie výpočty urobte priamo vo vzorcoch, koncipované tak, že budú zohľadňovať rozdielnosť orientácie zdroj-cieľ. V prvom rade by sme potrebovali vidieť tie vzorce, aby sme usúdili, či sa to tak bude dať. Ak áno, môžete rovnako ako predtým urobiť jeden, a pretiahnuť ho.

Ak chcete makro, tak si to kludne urobte na tlačítko, ktoré Vám to preklopí, ale opäť treba myslieť na to, aký druh vzorcov tam je (a to tajíte), pretože na normálny vzorec použijete "bunka.Formula" ale na maticový "bunka.FormulaArray".

Niečo takéto, a to zavoláte tlačítkom:
Sub Rel2Abs()
Dim rng As Range, bunka As Range
On Error Resume Next
Set rng = Application.InputBox("Zadajte oblasť :", "Zmeniť relatívne odkazy na absolútne", Default:=Worksheets("List1").Range("B12:O17").Address(0, 0), Type:=8)
On Error GoTo 0
If rng Is Nothing Then Exit Sub
For Each bunka In rng
If bunka.HasArray Then
If Len(bunka.FormulaArray) < 255 Then
bunka.FormulaArray = Application.ConvertFormula(Formula:=bunka.FormulaArray, FromReferenceStyle:=xlA1, ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
End If
Else
If Len(bunka.Formula) < 255 Then
bunka.Formula = Application.ConvertFormula(Formula:=bunka.Formula, FromReferenceStyle:=xlA1, ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
End If
End If
Next bunka
End Sub


Strana:  1 ... « předchozí  257 258 259 260 261 262 263 264 265   další » ... 302

Uživatelské menu

Nejste přihlášen(a)
avatar\n

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