Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  177 178 179 180 181 182 183 184 185   další » ... 302

Tak skúste toto maticové riešenie GoogleDrive

Nerozumiem Vašemu zadaniu. Uveďte prílohu s príkladom, čo máte, a aj toho čo chcete z toho mať. Tu prikladám príklad získania čísla z textu reprezentujúceho hmotnosť v gramoch bez ohľadu či sa napíše xxkg, xxxg, xx,xkg, xxx.

EDIT: No neberie mi to prílohu, tak to dávam na GoogleDrive

A kurňa, terazky som si k tomu sadol. No nič tak idem zase na gauč 7
Tak nech je veselo 9

Príklad. Vypíše Vám to všetky výskyty hľadaného textu v zošite, s menom listu a číslom riadku. Špecifikácia požiadavky je ale od Vás veľmi slabá ...

Mne sa nedarí nasimulovať pád makra pri akomkoľvek naformátovaní čohokoľvek krížom krážom. Skúste iba 1 riadok, či dostanete chybu. A skúste aj nadefinovať pole, teda
Sub makroo()
Dim VDataOm()
Dim VDataRom()

Set ListROM = Sheets("ROM")
Set ListVyhodnoceni = Sheets("Vyhodnocení")

VRadku = ListVyhodnoceni.Cells(Rows.Count, "A").End(xlUp).Row

ReDim VDataRom(1 To VRadku, 1 To 5)
ReDim VDataOm(1 To VRadku, 1 To 5)

VDataOm = ListVyhodnoceni.Range("K3:O" & VRadku).Value2
VDataRom = ListVyhodnoceni.Range("Q3:U" & VRadku).Value2

'Na konci
Erase VDataOm
Erase VDataRom
End Sub

Zaujímavá haluška. A to mám polia rád...

Nie príliš optimálne, ale dajme tomu ... :
Private Sub CommandButton1_Click()
Dim VolnyRadek As Long, HDN, Rok As Long, Cislo As Long, nRok As Long

With Worksheets("List1")
VolnyRadek = .Cells(Rows.Count, 1).End(xlUp).Row + 1
nRok = Val(Format(Date, "yy"))
If VolnyRadek = 2 Then
Rok = nRok: Cislo = 1
Else
HDN = CStr(.Cells(VolnyRadek - 1, 1).Value2)
Cislo = Val(Right$(HDN, 3))
Rok = Val(Mid$(HDN, 2, 2))
If nRok <> Rok Then Rok = nRok: Cislo = 1 Else Cislo = Cislo + 1
End If
.Cells(VolnyRadek, 1).Resize(, 2).Value2 = Array("P" & Format(Rok, "00") & Format(Cislo, "000"), TextBox1.Value)
End With
End Sub

EDIT: maličká úprava...

No mám jedno prosté/sprosté riešenie (matica):
=MAX(IF(COUNTIF(OFFSET($A$2:$A$5;;{2;1;0});F2)>0;{3;2;1}))
=MAX(KDYŽ(COUNTIF(POSUN($A$2:$A$5;;{2;1;0});F2)>0;{3;2;1}))

F2 je prvá dátová bunka KT.

Na prd je, že to musíte nakopírovať na potrebný/predpokladaný počet riadkov KT.

Skôr ako som si uvedomil, že tam máte na to list s rozdelenými rozmermi, tak som spravil maticu. Funguje tak, že si urobí zoznam jedinečných rozmerov, pričom 100x200 a 200x100 považuje za jeden rozmer. Ak totiž ide o nejaké naskladnenie či rezanie je to asi správne, ale ak ide o niečo iné tak to treba urobiť inak.
No a potom sa tieto kombinácie hľadajú cez COUNTIFS prípadne SUM/SUMA (podľa toho či sú rozmery rovnaké alebo nie).
Upresnite čo je treba. Keď prídem, možno na to ešte mrknem.

Čistý tip, skúste nahradiť to IE.Quit za toto:
If IE.LocationName = "neviem čo" Then IE.Quit: Exit For

Vložte sem prílohu, alebo mi ju pošlite na mail. Na červeno vyfarbite bunky, ktoré sa majú zväčšovať.

To je preto, lebo hlavičky filtra nie sú textové ale číselné. A Excel správne zistí, že zrátavate oblasť čísel okrem jedného susedného čísla (2. riadok), ktorý je tiež číslo. Tak Vám dáva možnosť zahrnúť aj toto číslo. Ak prepíšete hlavičky na textové, zmizne. Ak iba zmeníte formát na text (a potom ešte do každej bunky vstúpite a potvrdíte Enterom), šípka zo vzorcového riadku zmizne, ale zase sa objaví na tých číslach, ktoré ste dal ako text. Neviem, či to má iné riešenie okrem Súbor - Možnosti - Vzorce - Kontrola chýb - Povoliť kontrolu chýba na pozadí - nezaškrtávať.
Prípadne skúste dať na každej hlavičke Ignorovať chybu z tej ponúkanej ponuky s výkričníkom...

Čo je to neaktivita ? Že neprebieha nejakú dobu metóda OnChange nejakého zošitu ?

A keby bolo makro v osobnom zošite makier PERSONAL.xlsb ?
Nuž ale to by muselo byť na každom PC, kde sa budú otvárať súbory na ktoré sa tá kontrola vzťahuje, a navyše neviem, či je možné globálne prevziať OnChange, pre každý otvorený zošit. Lebo by mohla nastať kolízia lokálnej OnChange nejakého zošitu s globálnou OnChange v PERSONAL.slxb.
Neskúšal som, je to len tip (nie typ).

Maticou ?
-Nastavíte definovaný názov OBLAST na oblasť, ktorá obsahuje dáta.
-Umiestnite vzorec, ktorý je teraz v D1 do prvej bunky v stĺpci za posledným stĺpcom OBLAST-i.
-Natiahnete vzorec na počet riadkov rovnajúci sa očakávanému počtu výsledkov, teda :
počet riadkov OBLAST * počet stĺpcov OBLAST

Prázdne bunky ani stĺpce tomu nevadia, len je to matica, teda náročnejší výpočet, tak mu nedávajte 100 celých stĺpcov po 1 000 000 riadkov. Rozumne. Teraz sa v definovanom názve INDEXY počíta s riadkami v maske "0000" teda 1:9999, a so stĺpcami v maske "00" teda 1:99 (A:CU), si prípadne upravte.

No myslím že záleží aj na tom, čo znamená "bez opakování". Pretože to kľudne môže byť tak, že keď už máme 1,2,3 tak nemôžeme mať aj 3,2,1 / 3,1,2 / 1,3,2 / 2,1,3 / 2,3,1.
Teda výsledkov, kde nebudú použité rovnaké mestá bude 31.
Viď tento kód od Paul_Hossler.

pr.


Strana:  1 ... « předchozí  177 178 179 180 181 182 183 184 185   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