Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  126 127 128 129 130 131 132 133 134   další » ... 289

Ak je to len 10 riadkov, tak je to šumák, ale ak by tých riadkov bolo veľa, tak bude táto metóda pomalá. V tom prípade by som použil takéto niečo (použite buď to InStr alebo Like):
Private Sub CommandButton15_Click()
Dim RNG As Range, D(), Radku As Long, i As Long

Radku = Cells(Rows.Count, 1).End(xlUp).Row
If Radku = 1 Then
ReDim D(1 To 1, 1 To 1): D(1, 1) = Cells(1, 1).Value
Else
D = Cells(1, 1).Resize(Radku).Value
End If

For i = 1 To Radku
If InStr(1, D(i, 1), "^") = 0 Then
'If Not D(i, 1) Like "*^*" Then
If RNG Is Nothing Then Set RNG = Cells(i, 1) Else Set RNG = Union(RNG, Cells(i, 1))
End If
Next i

If Not RNG Is Nothing Then RNG.ClearContents
End Sub

Dá sa to samozrejme rozšíriť aj tak, že validné riadky zapíše pod seba bez medzier vzniknutých po mazaní nevalidných.

To je len 1 riadok s premennou.

???

Skúste takéto niečo na rýchlo. Dvojklik na dátum v riadku 7, 26, 45 importne súbor s daným dátumom ak existuje v adresári s týmto súborom.

Možno by to šlo aj tak, že by sa pre každú položku z desiatich počítal vo vedľajšom skrytom liste samostatný zoznam, na základe predošlých položiek. Boli by to ale veľmi komplikované vzorce (už som sem kedysi dával obdobný podmienený meniaci sa zoznam na položky, ktoré sa mohli vyskytnúť len raz). Ale hláška by nevyskakovala, len by to nedovolilo vybrať takú položku, a predtým zadané nevalidné by podfarbilo.

Skôr by som to ale riešil asi makrom. Tam može aj vyskakovať hláška. Ak teda makro môže byť. Môže?

Nepochopil som ako sa majú tie ceny kopírovať, či cez seba, či pod seba, alebo ako. Každopádne tu máte 2 spôsoby. Pozor si dajte na také kiksy, ako že List1 sa volá na ušku "List2" a opačne List2 sa volá na ušku "List1". To potom v makre mätie (opravil som to, aj nahodil logickejšie pomenovanie prvkov).

Tých komplikácií a vecí ktoré treba ošéfovať je podstatne viac. Mrknite na toto.

Odporúčal by som Vám ale asi obetovať 99 Kč na fakturačný formulár čo je ponúkaný rovno tu na fóre.

Ten list sa volá v zdrojových súboroch vždy rovnako ? Ak áno, tak súbor neotvárajte, to je najpomalšie. Namiesto toho, vložte odkazy pomocou vzorcov na bunky daného súboru s následným prevodom na hodnoty. Je to rýchle.

Ak sa ten list nevolá rovnako, tak je ešte možnosť napr. cez ADO zistiť názov listu, čo bude tiež rýchlejšie ako Open.

Aj tak tam ale vidím riziko, že niekto otvorí omylom úplne iný súbor XLS, ktorý nebude mať s požadovanými dátami nič spoločné. Chcelo by to ešte nejakú kontrolu validity súboru.

Príklad. A teraz som zvedavý, ako to implementujete do toho neúplného súboru čo ste dal ako prílohu. Potom treba zmeniť CodeName všetkých listov, a odvolávať sa v kóde práve na tento CodeName, aby sa mohli premenovať aj názvy listov podľa jazyku. Takto, ako to máte, že sa neustále odvolávate na názvy listov, to je zle. Napr. ako som urobil list Preklad (CodeName je wsPreklad). Ostatný kód je tiež potrebné upraviť, ale bez listov ? Mnohé by som si iba tipoval, ako to tam asi môžete mať (listy Odberatel a Komponenty, rozsahy comboboxov) ...

Ja to tu mám pre Vás od včera hotové, ale vôbec to podľa mňa nieje vhodné pre tento Váš prehľad. Neviem, koľko tam máte riadkov dát, ale takéto množstvo takto náročných maticových vzorcov je záhul. Navyše je to takmer nepochopiteľné a neupraviteľné riešenie. Pochybujem, že sa v tom niekto vyzná. Možno by bolo lepšie to prehodnotiť a usporiadať data inak, bez zlúčených buniek, a možno by potom bola prehľadnejšia KT, či Smart Filter na ListObject-e (s pomocnými stĺpcami). Lebo pri tomto maticovom "riešení" je problém, ak to bude na viac ako 1 str (čo asi bude, keď tam máte takú položku).
Problém, ktorý spôsobuje komplikovanosť vzorcov je ten, že musíte najskôr získať podmienený jedinečný zoznam problémov, a ten spočítavať zase na základe podmienok, a následne podľa početnosti, umiestniť do výsledku podľa podmienok (rok, mesiac, oddelenie).
Nemám na viac čas...

Do H12 dajte toto, a potiahnite vzorec po H14:
=IF(COUNTIF($B$12:$B$35;B5)>0;B5;"")
=KDYŽ(COUNTIF($B$12:$B$35;B5)>0;B5;"")

Ako inak, nastáva tam mnoho problémov. Môže to byť prázdna bunka, vzorec, maticový vzorec, Boolean, dátum, čas, text, ...)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bunka As Range, H
Const POSUN_DES_MIEST = 2 '+X vľavo, -X vpravo, 0 nič

Application.ScreenUpdating = False
Application.EnableEvents = False

On Error Resume Next
For Each Bunka In Target.Cells 'Kontroluj všetky zmenené bunky
With Bunka
H = .Value 'Čiastočné zrýchlenie - kontrola hodnoty je rýchlejšia ako kontrola bunky

Select Case True
Case IsEmpty(H) 'je prázdna - nič
Case .HasFormula 'je vzorec (aj maticový) - nič
Case VarType(H) = vbBoolean 'je boolean - nič
Case IsDate(.Text) 'je čas - nič (nefunguje ak je stĺpec úzky natoľko, že sa zobrazia # mriežky, vtedy to považuje za číslo a čiarku posunie)
Case IsNumeric(H)
.Value = H / (10 ^ POSUN_DES_MIEST) 'je číslo (vynechá dátum) - posuň čiarku
End Select
End With
Next Bunka

If Err.Number <> 0 Then MsgBox "Počas úpravy desatinnej čiatky došlo k chybe." & vbNewLine & "Niektoré úpravy nemusia byť správne.", vbCritical, "Chyba"

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Tak to mi hlava neberie, akým kľúčom sa rozhoduje o tom, čo bude v tých bunkách.
1. Vždy sú pre daný dátum 4 riadky ?
2. Vždy sú v D:D rovnako sa opakujúce rovnaké hodnoty, teda "ABAB" ?
3. V stĺpci N:N sú 4 bunky pre každý deň. Načo sú potom vo výsledku 4 dvojice (tie zlúčené orámované bunky) ? To by muselo byť pre 1 deň 8 riadkov.
4. Podľa prílohy vychádzam z kľúča, že :
-1. dvojica výsledku= 1. riadok dňa v N + 3. riadok dňa v N
-2. dvojica výsledku= 2. riadok dňa v N + 4. riadok dňa v N
Aký kľúč rozlúskne 10-ty týždeň 04.03.2019 ?
5. Prečo sú medzi výsledkovými "skupinami riadkov" nerovnomerné medzery (2,3,4 riadky) ?

-Rozsah riadkov v K je rovnaký vo všetkých listoch ? Ak áno, na ktorom riadku končia dáta?
-Od ktorého riadku začínajú dáta?
-Všetky dáta sú inak formátované? Teda treba kopírovať aj formát? Alebo je výsledková tabuľka predformátovaná, a stačí vložiť iba údaje? Pýtam sa preto, či treba používať Copy+Paste alebo pole dát, ktoré je rýchlejšie.
...

Alebo aj 2 iné príklady.


Strana:  1 ... « předchozí  126 127 128 129 130 131 132 133 134   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

vyhledání obsahu buňky

vfort • 18.7. 11:22

Názvy z řádků do sloupců Power Query

Alfan • 18.7. 10:01

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