Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  275 276 277 278 279 280 281 282 283   další » ... 286

1. Ten vzorec na posledné dni je upravený. Malo by to byť OK.
2. Ja som sa čudoval načo má v A1 odkaz na A40 (31. deň v ktoromkoľvek mesiaci). To je blbosť, veď každý nemá 31 dní. V žiadnom vzorci som nenašiel odkaz na A1, tak som to zmazal. Nejaký pozostatok.

Prosím upresni mi ešte raz a podrobne, čo patrí ku ktorej skupine/podskupine. Mne z toho teda vôbec nieje jasné, čo je skupina a čo je podskupina.
Totiž:
-prvá je uvedená číslica (nazvime to radšej znak) "1", to evokuje, že to je skupina "1". Tá obsahuje (???) podskupiny "A", "B", "C", "D" ???, To mi ale nesedí, pretože ďalej je "2", čo by mala byť asi skupina (nie podskupina), ale tá neobsahuje žiadne podskupiny "A", "B" ... Rovnako "3".

Tak ako je to napísané mi to nedáva zmysel. Pripadá mi to nekonzistentné (rozdielne).

Ja by som si podobný problém predstavoval takto:
- mám skupiny napr. 1,2,3,...
- v každej z nich sú podskupiny A,B,C,...

Prečo je to dôležité? Lebo je logické zapísať do "Ukoncene" najskôr názov skupiny, potom podskupiny, a potom riadok s údajom (samozrejme riadok sa zoskupí s jeho podskupinou/skupinou). Kdežto teraz to v tom "Ukoncene" vyzerá tak, že raz je skupina číslo a podskupina písmeno, a potom opačne. Narážam na riadky 2,3 a 11,12 v Ukoncene.

Navyše data až na jeden riadok v Ukoncene nekorešpondujú s Data.

Navrhujem:
Vyfarbi mi prosím v Data aj Ukoncene rovnaké skupiny a podskupiny rovnakou farbou, napr. vyfarbením G v Data a Q v Ukoncene.

Keď to pochopím, tak ti to (snáď) urobím.

Private Sub CommandButton1_Click()
With TextBox1
.SetFocus
.Text = .Text & "abc" & vbNewLine
lblPocetForm.Caption = "Form " & .LineCount - 1
End With

With Worksheets("Hárok1").Shapes("TextBox 2").OLEFormat.Object
.Text = .Text & "abc" & vbNewLine
lblPocetHarok.Caption = "Hárok " & Worksheets("Hárok1").Shapes("TextBox 2").TextFrame2.TextRange.Lines.Count
End With
End Sub

Volá sa to správne TextBox.
Tu máš pridávanie do oboch aj vo forme aj v hárku. Počet záznamo sa ukladá do 2 Label-ov:
lblPocetHarok
lblPocetForm

Daj vedieť, presnejšie čo potrebuješ. Ako to bude fungovať, viď predošlé otázky. Veď ti pomôžeme.
Ak chceš radiť v List1 opačne, v makre musíš zmeniť riadok:
Vysledok(367 - Riadok, Stlpec) = IIf(IsEmpty(Pole(rPole, 1)), "", Pole(rPole, 1))
Ale ako vraím, to je iba dielčia časť. Treba to riešiť komplexnejšie, vzhľadom na meniaci sa počet dní v roku, počet hodinových záznamov v dni,...

Podstatne rýchlejší variant:
Sub Transponuj()
Dim Pole(), rPole As Integer, Riadok As Integer, Stlpec As Byte
Dim Vysledok(1 To 366, 1 To 24)
Pole = Worksheets("List2").Range("B1:B8784").Value
rPole = 0
For Riadok = 1 To 366
For Stlpec = 1 To 24
rPole = rPole + 1
Vysledok(Riadok, Stlpec) = IIf(IsEmpty(Pole(rPole, 1)), "", Pole(rPole, 1))
Next Stlpec
Next Riadok
Worksheets("List1").Range("E1:AB366") = Vysledok
End Sub

Ale myslím si, že sú opäť nedostatočné informácie. Postrehy :
-List2 - dátum a čas pribúda smerom dole
-List1 - dátum pribúda opačne smerom hore
-s dátami nemôžeš počítať ako s 365 dňami, ale s 366.
-z prílohy tak nejak vyplýva, že dátum a čas v tabuľke nebude vopred zadaný, a uživateľ by dopĺňal do tejto nachystanej tabuľky číslo. Nie, to práveže vyzerá tak, že riadok sa bude postupne dopĺňať. Čo je komplikácia, pri automatizovaní, pretože tým pádom máme stav, že 23x za deň bude chybný výsledok, a iba raz správny, pretože počítame s fixným počtom hodnôt 24.
...

Stačí ti to takto ?
Ak chceš aby došlo k prekresleniu prvého dostupného modelu z danej značky pri zmene značky, musíš skúsiť použiť ActiveX, a ak to nepôjde automaticky, tak potom makrom. Nemám ale už čas. Zatiaľ som ti tam dal aspoň podmienené formátovanie, ktoré označí, že nieje model zo zoznamu modelov. Zoznamy su vypočítané správne, len to automatické obnovenie .... Rozumieš mi snáď, keďže nedôjde k prekresleniu, zostane tam predošlý model z predošlej značky.

zmeň IgnorePrintAreas:=True
na IgnorePrintAreas:=False

Tak nife75 mi vysvetlil, že sa jedná o zmenu vzorca v celom stĺpci.
Tú máš príklad na obe riešenia od AL a marjankaj, vľavo Tabuľka, vpravo Makro.
Tabuľka si sama pridá nový vzorec, v riešení cez makro to treba doprogramovať. Pre obe riešenia treba doprogramovať zmenšenie pri odobratí riadku. Záleží na tom, aká je štruktúra dokumentu, druh používania, stabilnosť tabuliek, atď

Isteže ide. Ale moment. To slovo "zadávať" (dátum, mesiac) je asi zmätočné ??? Ja som to najskôr pochopil takto:
- do poľa mesiac (Výkaz práce C5) sa sám, automaticky doplní aktuálny mesiac z funkcie NOW() pri každom prepočítaní listu (otvorenie súboru, prekliknutie listov, ...). Čiže som to pochopil tak, že Ty ho tam nemeníš.
- do poľa deň (Výkaz práce B44) zadáš Ty ručne posledný deň v mesiaci, aj keď som nechápal prečo, lebo to sa dá dosadiť automaticky.
- do poľa číslo mesiaca (Výkaz práce C44) sa automaticky samé doplní číslo mesiaca, rovnako ako názov mesiaca hore.

Takto som to pochopil, ale zdalo sa mi to logické iba z časti.

Ty si potrebuješ vybrať názov mesiaca zo zoznamu ? Ak áno, napr. mesiac dozadu a pod., tak kde zoberieš data, ktoré platili pred mesiacom ?

Prosím upresni.

EDIT: A s automatickým doplnením je tiež problém, ak budeš vypisovať výkaz po polnoci posledného dňa vypisovaného mesiaca. Preskočí ti to na ďalší mesiac - samozrejme keď je to automatika.

Vidím to tak, že to asi bude myslené tak, že to v jednom liste zadáš manuálne, napr. z výberového zoznamu ako si tam mal, a do ostatných listov sa to samo skopíruje. Nieje automatika ako automatika.

V tej C5 má byť to spomínané =NOW(), teraz je tam 1.4.2015. To som tam dal iba ako pokus.

EDIT 2 : Mrkni na túto prílohu, posledná úprava zatiaľ. Vyberieš mesiac zo zoznamu, rok napíšeš. Všetko ostatné sa zmení, doplní, skopíruje. Ani posledný deň v mesiaci už nezadávaš. Doplnil som podmienené formátovanie pre sviatok do ostatných listov.

Je v Exceli, tak ako v Delphi, nejak rozumne použiteľné FindWindows (FindWindowEx) ? Napadla ma takáto idea:
-Po odoslaní prvej "várky" sa spustí Timer (interval 1 sec) so slučkou, ktorý bude ukončený globálnym príznakom v nasledovnom teste
-Buď odchytať postupne okná, a nejako zistiť (ak to pôjde) názov alebo iný jednoznačný identifikátor okna s náhľadom tlače. HWND to nebude môcť byť, to bude stále iné.
-Alebo v týchto kontrolovaných oknách zisťovať existenciu nejakého buttonu či CommandBaru

Pochopili ste ma? Má niekto skúsenosti s odchytom FindWindow?

Je smutné, že v žiadnom z postupov tlače neponúka Excel Wait režim.

Skúšal som aj fintu s rekurzívnym spustením tlače z eventu BeforePrint, no zvnútra sa tlač nezavolá.

Na nete som našiel nejakú fintu so skrytým textom, ale to som nepochopil, tak preto mi to asi nefungovalo.

Potom už jedine blbé riešenie s pauzou napr. 10 sec, pretože Excel proste po naštartovaní tlačovej úlohy (nie tlače) makro nezastaví :(

To som vôbec nepochopil čo nife75 chce.
Chceš zmeniť formát celej tabuľky na základe zmeny v prvom riadku ?
Chceš do celej tabuľky nakopírovať hodnoty z prvého riadku ?
Je to, ako píše AL, ExcelTable, alebo to iba nazývaš tabuľka, lebo to má tvar tabuľky ?
Alebo tým myslíš, že potrebuješ, aby sa ti menili hodnoty v tabuľke na základe hodnôt v prvom riadku?
...

Skús, mne už to nerobí. Pridal som len Application.ScreenUpdating = False
Chcel som ešte po filtry odznačiť oblasť, ale hádzalo mi to chybu. Tak som tam hodil tento príkaz, uložil, zavrel, otvoril, a už to nerobí. Či to bolo len v tom ???, treba skúsiť.
Galibu tam ale ešte robí hlavička, stĺpec G, a ešte možno rozlíšenie tlače. Kombinácia týchto vecí môže rozhodiť stránku. Posunul som trošku okraj, nastavil DPI na 300, s hlavičkami pohnúť neviem. No snáď je to OK.

Môžeš povedať, čo by si tam ešte chcel upraviť ?
-Mesiac v listoch sa mení podľa aktuálneho dátumu.
-V náväznosti samozrejme aj dátumy.
-Nereálne dni sa nezobrazujú. To nebolo ošetrené tuším vo Výkaz nočních prací a Kniha jízd.
-Dvojpísmenný názov dňa a názov mesiaca sa nenačítavajú zo zoznamu v List1, ale na to má Excel fnc - nastavením vhodného formátu.
-V poliach Zakázka je výberový zoznam, má uľahčiť písanie, ale môžeš do buniek zapísať čo chceš, nielen to čo je v zozname.
-Stačí zadať iba číslo dňa do B44 v prvom liste, do ostatných sa to skopíruje aj s aktuálnym mesiacom.
-Kniha jízd nezobrazuje údaj Služební jízdy celkem a Stav tachometru v nereálnych dňoch mesiaca

Neviem ako inak si to myslel.

Sub CisloKopie(Pocet As Integer)
Dim Cislo As Integer
For Cislo = 1 To Pocet
With ActiveSheet
.Cells(1, 5).Value = Cislo 'Tu bude číslo kópie "E1"
.PrintOut
End With
Next Cislo
End Sub

Sub Tlac()
Call CisloKopie(3) 'Počet kókií
End Sub

alebo
Sub CisloKopie2(Pocet As Integer)
Dim Cislo As Integer
For Cislo = 1 To Pocet
With ActiveSheet
.Cells(1, 5).Value = .Cells(1, 5).Value + 1
.PrintOut
End With
Next Cislo
End Sub

Prvá verzia vytlačí zadaný počet kópií, očísluje ich od 1 po Počet.
Druhá verzia vytlačí zadaný počet kópií, očísluje ich tak, že pridá číslo 1 k predošlému číslu.
V oboch prípadoch je treba mať vopred nastavené Nastavenie tlače dokumentu. Toto je okamžitá tlač.

ActiveSheet.Shapes.SelectAll
alebo v prípade, že niektoré sú Invisible, alebo inak nežiadúce vo výsledku, tak potom takto:
Sub Select_all()
Dim sh As Shape, sel()
For Each sh In ActiveSheet.Shapes
If sh.Visible Then
If Not Not sel Then ReDim Preserve sel(1 To UBound(sel) + 1) Else ReDim sel(1 To 1)
sel(UBound(sel)) = sh.Name
End If
Next sh
ActiveSheet.Shapes.Range(sel).Select
End Sub


Strana:  1 ... « předchozí  275 276 277 278 279 280 281 282 283   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