Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  264 265 266 267 268 269 270 271 272   další » ... 298

- To tam bude iba 12 dní ? Asi celý mesiac nie ?
- A čo keď bude mať niekto PN alebo dovču ?
- Odkiaľ sa zoberú tie prvé 2 zmeny (posledná a predposledná zmena) ?
- Bude tam viac riadkov (zamestnancov) ? Ak áno, aký vzťah bude medzi zmenami týchto zamestnancov ?

Veľmi dobre napísané, že Excel nieje zabezpečená DB, ale má iba prvostupňovú ochranu proti zmene "omylom". Je to tabuľkpvý procesor.

Do nekonečna to nieje. Najskôr sa prehľadá stĺpec A na slovo "KEJE:", ak ho nájde, skontroluje, či v bloku "KEJE:" je hľadaná farba, ak nie, hľadá ďalej, s posunutou hodnotou poz, ktorá označuje počiatok hľadania (inak by hľadal od začiatku). Na tom mojom súbore je KEJE 2x. čiže cyklus while prebehne 3x. Prvý krát najde prvú KEJE, druhý krát druhé KEJE, tretí cyklus až po koniec KEJE nenájde a skočí na KONIEC. Toto isté sa opakuje celé ešte raz ale s hodnotou "Fabrics:". Ak nájde v bloku KEJE alebo Fabrics zhodu farby, tak vyhľadá kde sa pod blokom nachádza "Hmax" a potom nájde prvú prázdnu bunku pod Hmax, takto zistí umiestnenie tabuľkového bloku dát. Ešte ho rozšíri o počet stĺpcov v riadku Hmax, ale o to nejde. To je stručný popis toho ako funguje tá druhá časť.

Ak chcete pošlite mi Váš konkrétny reálny súbor na mail (v profile).

Žiaľ Vami popisovaný problém sa mi nedarí nasimulovať. U mňa (Excel 2013 x64) to funguje tak ako píšete, že by malo. Teda ak nenájde farbu na liste KEJEFabrics, nič sa nedeje, ostáva zobrazená aspoň tabuľka z listu Stav.

Otvorte si VBA (ľavý Alt+F11), tam si v Module1 nastavte kurzor niekde do procedúry Sub Hledat(), a stláčajte F8, týmto budete krokovať makro a jeho priebeh. Uvidíme, či kde Vám to havaruje. Dajte vedieť riadok na ktorom to kľaklo. Samozrejme pri krokovaní použite rovnaké hodnoty ako keď Vám to spadlo.

Spravil som Vám makro, ktoré vyhľadá a vypíše hľadané tabuľky na list Hledat. Odtiaľ si to už vytlačte.

Ja som to raz urobil tak, že makrá boli zaheslované v zošite bol visible po štarte iba jeden list s logom nič viac. Pracovné listy boli VeryHidden. Ak užívateľ súbor otvoril, videl len logo, ale keď klikol na Povoliť makro, nabehlo OnOpen a zviditeľnilo pracovné listy a list logo dalo VeryHidden. Pred uložením v BeforeSave sa opäť zviditeľnilo logo a listy zneviditeľnili, uložilo sa to a opät sa zviditeľnili listy, nastavil sa príznak uloženia. Takže pri ďalšom otvorení bolo opäť iba logo. Neviem či som to riešil dobre, ale bolo to pre dané potreby dostatočné.

Polovičku otázky nechápem. Nahradenie VLOOKUP je mnohonásobná vec, kdežto výpis vyhľadanej hodnoty na iný list je jednorázová vec.
Tu máte makro, ktoré prehľadá celú zvolenú oblasť (nastavíte pomocou konštánt) v Hárok1 a vypíše celý riadok s nájdenou hodnotou na prvý voľný riadok v liste Zhoda.

Dodajte prílohu s lepším popisom a bude sa tvoriť ľahšie.

Inak samotné vyvolanie natívneho okna Find:
Application.CommandBars.FindControl(ID:=1849).Execute
alebo
Application.Dialogs(xlDialogFormulaFind).Show
ale použiť ich programovo na hľadanie a vracanie výsledku neviem.

EDIT: Alebo použite túto UDF funkciu:
Function FULLLOOKUP(Co As Variant, Kde As Range, Stlpec As Integer) As Variant
Dim r As Long
On Error Resume Next 'Hľadanie hodnoty
r = Kde.Find(What:=Co, LookIn:=xlValues, LookAt:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).Row
On Error GoTo 0 'Vrátenie odchytenia chyby
If r = 0 Then FULLLOOKUP = CVErr(xlErrNA) Else FULLLOOKUP = Kde.Parent.Cells(r, Stlpec).Value 'Vráť hodnotu zo zadaného stĺpca v najdenom riadku
End Function

=PROPER(B36)

Určite na to potrebujete makro ? Tu máte vzorec, keď prídem urobím Vám aj to makro.

EDIT:
Makro, ak tomu nebudete rozumieť, rozsekám Vám to na drobné :
Sub Tlačidlo1_Kliknúť()
With Worksheets("H")
If Not IsError(Application.Match(.Cells(3, 3).Value, Worksheets("H2").Columns(WorksheetFunction.Match(.Cells(2, 3).Value, Worksheets("H2").Cells(1, 1).Resize(1, 6).Value, 0)), 0)) Then MsgBox ("Číslo sa nachádza v zadanej oblasti.")
End With
End Sub

Toto Vám bude brať v úvahu iba zvolenú oblasť, nastavíte si veľkosť písma pre väčšiu, menšiu a rovnú hodnotu, vysporiada sa to aj s kopírovaním viac buniek naraz (aj cez hranicu oblasti), ignoruje "" a text, mení všetko naraz.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oblast As Range, Bunka As Range, ZmenitV As Range, ZmenitM As Range, ZmenitN As Range
Const VACSIE = 12
Const MENSIE = 8
Const ROVNE = 10
Const HRANICA = 10
Set Oblast = Range("A1:C10")
On Error Resume Next
For Each Bunka In Target
If Union(Oblast, Bunka).Address = Oblast.Address And Bunka <> "" And IsNumeric(Bunka) Then
Select Case True
Case Bunka.Value > HRANICA: If ZmenitV Is Nothing Then Set ZmenitV = Bunka Else Set ZmenitV = Union(ZmenitV, Bunka)
Case Bunka.Value < HRANICA: If ZmenitM Is Nothing Then Set ZmenitM = Bunka Else Set ZmenitM = Union(ZmenitM, Bunka)
Case Bunka.Value = HRANICA: If ZmenitN Is Nothing Then Set ZmenitN = Bunka Else Set ZmenitN = Union(ZmenitN, Bunka)
End Select
End If
Next Bunka
ZmenitV.Font.Size = VACSIE
ZmenitM.Font.Size = MENSIE
ZmenitN.Font.Size = ROVNE
On Error GoTo 0
End Sub

Vo Win by to mohlo ísť zmeniť takto (popis na Win 8.1.1):
- Štart, napíšeme "zmeniť formát" a prvá nájdená položka je "Zmeniť formát dátumu, času alebo čísiel", otvoríme.
- Tlačítko "Ďalšie nastavenia"
- Zmeníme "Oddeľovač desatinných miest" na "." a "Oddeľovač v zoznamoch" na ",".
Ja to skúšať nejdem, ale kto chce ...
Otázka je, či to bude akceptovať Office čo je tak 50/50.

@lubo: pravda, na to som nepomyslel. Vovka dal správne riešenie.

Napr.
Počíta s nerovnakým počtom riadkov v A a B, eliminuje zápis prázdneho riadku (ak niesú data), zápis robí naraz a bez úvodzoviek na začiatku a konci, ako oddeľovač som použil ";", desatinné čísla vloží s "," (teda aspoň u mňa).
PS: to vyhľadanie posledného riadku by som riešil asi cez FIND metódu, nie takto, to som si len pracovne rýchlo urobil a nechal tam.

Alebo
Cells(1, 4) = Cells(1, 1).Text

Ja by som to urobil takto, s ochranou pred chybou napr. pri vymazaní bunky, s dynamickým zoznamom, s automatickým načítaním listov a s kontrolou existencie hodnoty v zozname.


Strana:  1 ... « předchozí  264 265 266 267 268 269 270 271 272   další » ... 298

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