Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  210 211 212 213 214 215 216 217 218   další » ... 289

Vstupná tabuľka má vždy iba 7 stĺpcov (týždeň) ?
Výstupné tabuľky budú asi ťažko vyzerať takto. Potrebujete si "nadpočítať" toľko stĺpcov v každej tabuľke, koľko je stĺpcov v zdrojovej. V tomto prípade 7 a 7. Vy tam máte 4 a 4.
Potom ma napadá makro samozrejme. Urobil som nejaký nástrel na rôzny počet stĺpcov/riadkov, ale nieje to dokončené.
Rozloženie ako ste si určil je nevhodné pri zmene počtu stĺpcov či riadkov. Podstatne upresnite zadanie. Možno by to šlo urobiť aj nejako cez pomocné kontingenčky alebo dotaz SQL/PowerQuery...
Riešenie bude špecifické pre to, ako to bude presne vyzerať, ako sa chovať, koľko dát, kde, ... proste na základe všetkých info, ktoré ale chýbajú 1

Range("H5:N" & Cells(Rows.Count, 1).End(xlUp).Row)
alebo
Cells(5, 8).Resize(Cells(Rows.Count, 1).End(xlUp).Row - 4, 7)

Tak vo vzorci zmente
"<" na "<=" a máte želané hodnoty
prípadne, ak to chcete roztiahnuť aj na riadky kde niesú pretekári, ale chcete tam mať prichystaný vzorec, tak ho obalte do IF
=IF(G4="";"";IFERROR(INDEX($C$4:$C$13;COUNTIF($B$4:$B$13;"<="&H4)+1);0))
=KDYŽ(G4="";"";CHYBHODN(INDEX($C$4:$C$13;COUNTIF($B$4:$B$13;"<="&H4)+1);0))

Som len na mobile, robí sa mi strašne zle. Vôbec ste to neobjasnil. Časy v stĺpci B sú najhoršie za aké dostane pretekár body v riadku v stĺpci C? Nepozdávajú sa mi niektoré hodnoty v stĺpci I. Keď má niekto horší čas ako ako posledný z B tak by mal dostať 0, nie? Vysvetlite to o celý rád lepšie - podrobnejšie. A hlavne aspoň okomentujte vzorec, čo som Vám poslal, nech vieme kedy vracia zlú hodnotu ...

Takéto niečo by nefungovalo (malé makro v každom súbore).

Keď nemám žiadnu prílohu, žiadne dáta ako príklad, žiadny podrobnejší popis (súbory sú/niesú na sieti...), tak fakt neviem. Je to už môj starý kód, dnes by som robil niektoré veci inak. Ale ako ho skúšam - funguje. Takže ... ?

A takto "blbě" cez PF+normálny F by to nešlo ?

Tak skúste :
Range("H:H").SpecialCells(xlCellTypeBlanks).Cells(1).Select
resp. takto, ak to má začínať až od H2 (ak H1 nemá byť náhodou zahrnutá):
Range("H2:H" & Rows.Count).SpecialCells(xlCellTypeBlanks).Cells(1).Select

Napr.:
=IFERROR(INDEX($C$4:$C$13;COUNTIF($B$4:$B$13;"<"&H4)+1);0)
=CHYBHODN(INDEX($C$4:$C$13;COUNTIF($B$4:$B$13;"<"&H4)+1);0)

S Vašimi bodovými hodnotami čo tam máte, to ale nesedí. Tie Vaše hodnoty nespĺňajú podmienky, alebo som ich nepochopil správne. Ja to chápem tak, že časy v B sú "do, vrátane".

Prečo chcete silou-mocou použiť xlDown ? Použite xlUp. Toto funguje na Vašom súbore na každom jednom liste:
Sub PrvyVolny()
Cells(Rows.Count, 8).End(xlUp).Offset(1).Select
End Sub

Šmarjá 1 To máte tisíce riadkov kódu, ktorý je neskutočne pomalý, zbytočne sa dookola opakujúci, neflexibilný (nieje možné zmeniť názvy listov len tak jednoducho), a strašne neprehľadný.
To treba zjednodušiť.
Napr 2 bloky "' ODKOVENÍ PŘÍČEK" a "' VLOŽ SLOUPCE SE STŘEDISKEM"
sa dajú zjednodušiť napr. na :
Dim SH As Worksheet
For Each SH In Worksheets
Application.Goto SH.Cells(2, 1)
ActiveWindow.FreezePanes = False
Cells.FormatConditions.Delete
Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(1, 4) = "STŘ"
Next SH

Blok "' USPOŘÁDÁNÍ SLOUPCŮ" by stačil pravdepodobne napr takto nejako:
Columns("J:J").Delete Shift:=xlToLeft
Columns("T:T").Cut
Columns("A:A").Insert Shift:=xlToRight
Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B1") = "Poznámky"
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C1") = "Stroj"
Columns("E:E").Cut
Columns("H:H").Insert Shift:=xlToRight
Range(Range("A1"), Range("A1").End(xlToRight)).AutoFilter
Union(Columns("K:K"), Columns("M:P"), Columns("R:R")).Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
With AutoFilter.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

To dávam vlastne zbrucha, otestujte, a skúste sa pohrať z povynechávaním neustálych zbytočných Select-ov, a hlavne neopakovaním rovnakého kódu pre všetky listy. Napr. použitím cyklu, alebo poľa a procedúr s parametrom, ...

Nemám na to čas, ale aj keby som mal, tak by som musel mať echt náladu rozobrať funkčnosť 2500 riadkov, tipnúť si účel, spôsob, prekopať, zjednodušiť, vyskúšať...

Ja Vám rozumiem, že ste makro nahral, a funguje, ale musí byť veľmi pomalé. Nedávno tu bol postnutý ešte väčší kód cca 4500 riadkov. Takže rekordérom nieste 1 Skúste niečo s tým urobiť, možno keď bude niekto vidieť Vašu urputnú snahu, tak sa Vám na to dá.

Inak ak chcete vynechať nejakú časť kódu v takom stave v akom to máte, tak pred inkriminovanou časťou urobte potrebnú kontrolu a za inkriminovanú časť vložte skok. Teda príklad:
If Range("A3")="" Then GoTo POKRACUJ1 'Skok na miesto s názvom POKRACUJ1
...
inkriminovaný kód
...
POKRACUJ1:
Bude pokračovať ďalej...

My ale netušíme, ako to u Vás vyzerá, čo robíte makrom, kde, za akých podmienok, či máte listy vytvorené, alebo ich vytvárate, z ktorého listu čítate tú hodnotu A3, či z riadiaceho alebo z výsledného (v ktorom má makro niečo robiť), ........
Každopádne spustiť či nespustiť makro sa dá jednoducho jedinou podmienkou If.
If Worksheets("XYZ").Cells(3, 1)<>"" Then Call MojeMakro
Ale fakt nevieme, či do makra má vstupovať nejaký parameter, napr. list, keď spomínate, že chcete vynechať nejaký list, alebo či prechádzate pomocou For-Each-Next všetky listy, alebo ...

S čím máte konkrétne problém ??? Tu máte nejaké príklady, a jedno konkrétne použitie s objektami Tabuliek na Vašom súbore. Objekt Tabuľka (nie obyč. tabuľka) som použil preto, lebo si myslím, že budete chcieť aby si to vzorec do ďalšieho riadku dopĺňalo samé.

Tak

Tak ?


Strana:  1 ... « předchozí  210 211 212 213 214 215 216 217 218   další » ... 289

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

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49