Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  188 189 190 191 192 193 194 195 196   další » ... 302

1. Nič čo popisujete teraz, v zadaní nemáte. Tam ste mal niečo iné. Tak som to pochopil ja.
2. Takéto príklady sa nepopisujú slovami, ale príkladom vo forme súboru (XLSM súbor musí byť zabalený do ZIP), kde bude na konkrétne manuálne vytvorenom príklade ukázané čo máte, a čo má byť výsledok.
3. Aké statické polia ? Moje polia sú dynamické. Veď si pri každom spustení nájde rozsah každého poľa. Ešte si aj predošlý výsledok dynamicky vymaže.
4. Že Vám hádže zlé výsledky po "úpravách" - no veď práve. Najskôr si dajte záležať na prílohe, potom Vám snáď urobíme nejaké verzie postupov, ktoré si otestujete na reálnych dátach (reálnom množstve údajov), a zistíte, ktoré Vám pobeží najrýchlejšie, alebo bude inak vyhovovať. Či máme okomentovať všetky naše riešenia, a Vy zmeníte zadanie ?

Polepšite sa 1

Sem s tou prílohou, a keď bude čas...

EDIT: Čo má ten Váš uvedený kód robiť ?
-chýba End Sub - to nieje problém
-Worksheets"Tabelle4") - to funguje bez zátvorky asi ťažko
-deklarácia last_row je, last_row2 nie
-použil ste najpracnejšiu možnú formu kopírovania oblasti buniek z jedného listu do druhého - bunku po bunke
-a čo index poľa 0 a 1 ? Keď dáte Redim(2) dostanete trojmiestne pole (0,1,2)
-takže z listu Tabelle4 nakopíruje A->A , D->B, žiadne porovnávanie to nerobí.

Tá príloha s príkladom a rozšírený popis je ešte potrebnejší.

Ďalšie 3 možnosti makrom. To sa dá ale aj cez KT. Musíte si na reálnych dátach skúsiť čo bude lepšie. Inak pozor funkcia TRANSPOSE funguje len do cca 32K záznamov, inak je treba pole otočiť cyklom.

Odstavte
On Error Resume Next
A čekujte, či Vám hodí na nejakom riadku chybu. Páč asi kvôli hádzaniu nejakej chyby to tam vôbec je.

janda30 napsal/a:

...ve chvíli, kdy na něm proběhne změna a v tu chvíli snad aktivní být musí...

To nieje pravda. Zmenu na liste môže vyvolať aj iné makro volané dokonca aj z iného súboru, nielen z iného listu. Keď ale dochádza k zmene užívateľskou zmenou bunky, tak by aktívny mal byť. Mal (?).

Ale mám podobnú nelogickú skúsenosť spred asi 1,5 roka, kde mi označenie ComboBoxu vyhadzovalo nelogicky-nepravideľne chybu neexistencie objektu, aj keď tam bol. Buď bola udalosť SheetSelectionChange listu1 zošituA záhadne volaná z listu2 zošituB, alebo ComboBox.Parent sa záhadne menil. Neviem už ako sme to riešili, ale tuším tiež iba kontrolou, či daný list v ThisWorkbook sa rovná aktívnemu listu v aktívnom okne.

Vyzerá to ako holý nezmysel, no tiež mi to logika neberie.
Konkrétne ale asi neporadím.

Čo má tlačítko robiť vieme, čo ale nevieme je kde to má robiť.
-Ten navi-program vytvorí súbor XLSX, kde nebude nič iné len obdobná tabuľka? Ak je to inak popíšte ako.
-Tá tabuľka je v dobe prepočtu zasadená aj do iných číselných dát (je niečo kdekoľvek okolo nej) ?
-Je rovnako rozmiestnená a koncipovaná, teda vždy 10 bodov v stĺpcoch po piatich so zlúčením 3-och riadkov v čísle bodu, vynechaním jedného riadku medzi uzlom a míľou, je rovnako odsadená od okrajov listu, rovnako sa volá list, ... ?
-Ak je vždy iná, ako ju máme identifikovať ? Vyhľadaním "Otočný bod" ?
-Konvertované majú byť na inom liste - teda je jednoduchšie urobiť kópiu prvého listu, kvôli tomu že netreba potom riešiť opätovné formátovanie, zlučovanie a pod. Je to možné takto robiť, alebo je ten list na nové hodnoty, už prichystaný aj s niečím iným okolo ?
To je spústa a ešte viac nejasností...

luky81: Zmenil ste zadanie, nie ? Nemal ste tam najskôr každý 5-ty stĺpec ?
mepexg: ten Váš mi ale nefachá ani na každom 5, ani 8 (EDIT: aha tak Vy chcete riešiť aj transponovanie, mi to až teraz došlo:) )

Na každom 8-om mi fachá tento:
=INDEX(List1!$5:$5;;(ROW(A1)-1)*7+1)
=INDEX(List1!$5:$5;;(ŘÁDEK(A1)-1)*7+1)

tipujem:
=INDEX(List1!$1:$1;;ROW(A1)*5-5)
=INDEX(List1!$1:$1;;ŘÁDEK(A1)*5-5)

Napadajú ma hneď 4 možnosti ako to urobiť. A neviem, či som si nezvolil zrovna tú najhoršiu na programovanie :)
No skúste.

V tých súboroch sú iba 4 stĺpce, že? Tie ostatné si tam iba Vy vytvárate ako pomôcku. Tie tam byť nemusia a ani nemajú ? Alebo sa majú potom do tých pootváraných súborov poukladať tie vzorce v F:M ? Do toho spoločného súboru sa majú vkladať ktoré dáta z tých zdrojových ? Ktoré stĺpce A:D ? Alebo aj tie pomocné vzorcové F:M ? Koľko má každý súbor +- riadkov ?

Tú Vašu najnovšiu prílohu som nepozeral, ale na to nepotrebujete makro. To je ako robené pre PowerQuery (Excel 2010 a vyšší). A to podotýkam, že v PQ robiť neviem.
EDIT: Tabuľku stačí iba dať Obnoviť (karta Údaje - Obnoviť)

XLSM musíte zabaliť do ZIP aby šiel nahrať.

V súbore XLSX nikdy žiadne makro byť nemôže. Na to je XLSM. Takže makro nevidíme. Toto je hlavný súbor, či ten dielčí ? Čo znamená "príhoda" ? To je akýkoľvek záznam v riadku spĺňajúcom v F:F nejaký dátum? Dielčie súbory sú v jednej samostatnej zložke ? Treba preskúmať všetky, ktoré v danej zložke sú ? Majú premenlivý názov listu asi, však ? Počet listov je rovnaký ? ...

Tak moment, čo Vy chcete vlastne vypísať?
-všetky ovládacie prvky formu bez MultiPages a bez Pages
-všetky ovládacie prvky formu aj s názvami MultiPages ale bez názvov Pages
-všetky ovládacie prvky formu aj s názvami MultiPages a Pages
-rozdeliť všetky ovládacie prvky formu tak ako patria do Multipages
-rozdeliť všetky ovládacie prvky formu tak ako patria do Multipages a príslušných Pages
-vypísať iba názvy všetkých MultiPages na forme
-vypísať iba názvy všetkých Pages na forme
-vypísať názvy všetkých MultiPages na forme a im zodpovedajúce Pages

Proste uveďte presne ako má vyzerať výsledok v tomto konkrétnom prípade.

Nemôžete testovať len Controls. Veď tá podstránka je Page, nie Control. Teda musíte prejsť všetky Pages v objekte ktorý má typ MultiPage, a v každom cykle kontrolovať Controls až v tej Page. Ale vidím, že sa jedná o niekoľkonásobné vnorenie MultiPage, teda bude potrebné urobiť rekurzívnu metódu. Zvládnete to ?

Pre prepočet viac ako jednej bunky:
Selection = Evaluate("=" & Selection.Address & "*1.852")

a pre prepočet viac ako jednej bunky, ale s ničnerobením keď je prázdna:
Selection = Evaluate("=IF(" & Selection.Address & "="""",""""," & Selection.Address & "*1.852)")

Samozrejme sa bavíme o súvislej oblasti (viacriadkovej alebo viacstĺpcovej alebo oboje), nie o oblasti "hocikde". Ak chcete tak, povedzte, tam sa musí urobiť cyklus pre všetky podoblasti Areas.

EDIT: Pre hocijakú oblasť nesúvislú, to je fuk, mení iba čísla, prázdne a nečíselné bunky nie:
Sub PrevodAreas()
Dim ARE As Range, Adr As String
For Each ARE In Selection
Adr = ARE.Address
ARE = Evaluate("=IF(ISNUMBER(" & Adr & ")," & Adr & "*1.852," & Adr & ")")
Next ARE
Set ARE = Nothing
End Sub


Strana:  1 ... « předchozí  188 189 190 191 192 193 194 195 196   další » ... 302

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