Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  288 289 290 291 292 293 294 295 296   další » ... 300

Práveže podľa mňa to potrebné kvôli jednoduchosti použitia je. Ak nieje známy počet vyplnených buniek, dá CONCATENATE_RANGE na konci delimiter. To sa dá ošetriť, napr tak, že sa vloží ako parameter už vypočítaná zaplnená oblasť, bez prázdnych buniek na konci. Lenže delimiter dostaneme aj keď bude medzi zaplnenou oblasťou prázdna bunka. Preto som dal cyklus. Možno sa to dá urobiť inak, toto je prvé čo ma napadlo, a ďalej som to už neskúmal :)

Ja by som to urobil pomocou UDF asi takto
Function fSpoj(ByRef Rozsah As Range) As String
Dim Bunka As Range
For Each Bunka In Rozsah
If Bunka <> "" Then fSpoj = fSpoj & IIf(Bunka.Address = Rozsah.Cells(1).Address, "", ", ") & Bunka
Next Bunka
End Function

Tak potom maticovým vzorcom takto, bez makra. Ak to chceš makrom tak ti to naprogramujem.

No na 2003 nefunguje výberový zoznam na mesiac. Nesmie sa používať odkaz na iný list. Dá sa to obísť cez Názov, ktorý odkazuje na daný list. Ďalej nefunguje podmienené formátovanie, rovnaký dôvod aj riešenie. Farby sú samostatná kapitola, pže novšie verzie majú "Advanced" farby, ktoré sa na starších nezobrazujú správne (resp. zobrazuje sa najpodobnejšia). Ostatné by malo fungovať.
Verziu 2007 kvôli tomu na testovanie nebudem inštalovať.

No vyskúšaj

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í :(


Strana:  1 ... « předchozí  288 289 290 291 292 293 294 295 296   další » ... 300

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