Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  4 5 6 7 8 9 10 11 12   další » ... 287

A k čomu makro??? Veď tam dajte iba vzorec
=IF(COUNTIF(oblast;C3)>0;"JE TAM";"NENALEZENO")
=KDYŽ(COUNTIF(oblast;C3)>0;"JE TAM";"NENALEZENO")


ak rozdelené makro tak:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' Tato buňka nebo oblast když se změní, spouští se makro
Set KeyCells = Range("C3")

If Not Intersect(KeyCells, Target) Is Nothing Then
' Následující makro se změnou buňky nebo oblasti spouští
Over KeyCells.Value
End If
End Sub


Sub Over(ByRef hodnota_bunky As Variant) 'ověří jestli se hodnota buňky nachází v oblasti
' Debug.Print hodnota_bunky

Application.EnableEvents = False
Range("A6").Value = IIf(IsError(Application.Match(hodnota_bunky, Range("oblast"), 0)), "NENALEZENO", "JE TAM")
Application.EnableEvents = True
End Sub

ak spojené tak
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' Tato buňka nebo oblast když se změní, spouští se makro
Set KeyCells = Range("C3")

If Not Intersect(KeyCells, Target) Is Nothing Then
' Následující makro se změnou buňky nebo oblasti spouští
' Debug.Print hodnota_bunky

Application.EnableEvents = False
Range("A6").Value = IIf(IsError(Application.Match(KeyCells.Value, Range("oblast"), 0)), "NENALEZENO", "JE TAM")
Application.EnableEvents = True
End If
End Sub

UDF ?
Téma Práce s dlouhými celými čísly od "vovka.h".

Áno, tak je to aj v tom videu 2:58 - 3:52.

To video vlastne ukazuje, že nič nefunguje. A ten posledný krok, kde to kopíruje po jednom riadku, je obdoba toho, čo robí to makro, akurát vo videu je tým pádom zbytočný ten OFFSET vzorec. To makro v tom súbore mať predsa nemusíte. Len ho raz použijete na potrebnú oblasť + predpokladaná rezerva, a makro zmažete. Nebude v súbore žiadne a súbor ostáva XLSX (nie XLSM), a PF funkčné, na prázdnych riadkoch nič nebude.
Bohužiaľ v takomto prípade hádže Excel polená pod nohy...

Pokiaľ si pamätám, tak toto obmedzenie absolútneho odkazu sa nedá obísť. Ja som to párkrát riešil tak, že som si urobil makro, ktoré mi to nastavilo na celu požadovanú oblasť samostatne pre každú bunku jedno PF. O koľko riadkov sa bude jednať? Počet riadkov bude stále meniteľný?

EDIT:
Príklad.

Vyskúšajte výhradne na kópii (!) ostrého súboru.

Takže z listu "2" si urobíme šablónový list a skryjeme ho.
Dáme tlačítko na vykonanie makra.
A teraz otázky:
-V listoch majú byť vzorce odkazujúce na list "List1" alebo nakopírované hodnoty?
-Pri stlačení tlačítka, sa majú doteraz vytvorené listy všetky okrem šablóny a "List1" vymazať, a následne vytvoriť nové podľa zoznamu z "List1"?
-Ako sa tie nové listy budú volať? 2,3,4,... (prečo od 2?)? V prípade, že sa nebudú predchádzajúce mazať, tak pokračovať v číslovaní? Tu bude treba zisťovať najvyššie použité číslo...
-Budú v zošite aj iné listy okrem "List1", šablóna, a 2,3,4,... ?

EDIT:
Makro je zatiaľ prkotinka, čo už mám hotovú. Narazil som (ako inak) na rozpor, ktorý musíte objasniť odpoveďou na predchádzajúce otázky. Ak sa totiž majú listy a čísla pridávať za posledný, nie je možné tam nechať vzorce. Ten zoznam sa asi aktualizuje, teda by boli prepísaním hodnôt predchádzajúce listy neplatné (rovnaké hodnoty, ako nové). Tak dajte vedieť.

No ale to bude potrebná príloha, aby bolo vidieť, ktoré údaje v stĺpcoch daného riadku, pôjdu do ktorých buniek v novom liste. To vyzerá na rozkopírovávanie nejakého šablónového listu do kópií a premenovanie a vyplnenie údajmi. Dajte prílohu (musíte sa zaregistrovať) a urobíme nejaké makro...

Súbor - Možnosti - Panel s nástrojmi Rýchly prístup - Všetky príkazy - Čítať obsah buniek po stlačení klávesu Enter (SpeakOnEnter) - Pridať
A potom to týmto tlačítkom zapnete/vypnete.

Veď ten riadok V1 nemáte ako číslo, ale text. Excel Vám to tam píše v tom zelenom trojuholníčku v rohu každej bunky.
Do každej bunky vlezte (do editácie bunky) a odentrujte, alebo hromadne vynásobte 1 (ak neviete ako napíšem). Potom bude fungovať SUMIF normálne
=SUMIF($C$5:$BJ$5;BM$5;$C6:$BJ6)
alternatíva, ktorá zvládne pri súčte aj text (práve kvôli tomu, že si to vynásobí, a tým prevedie text na číslo) je:
=SUMPRODUCT($C6:$BJ6*($C$5:$BJ$5=BM$5))
=SOUČIN.SKALÁRNÍ($C6:$BJ6*($C$5:$BJ$5=BM$5))


EDIT hromadné vynásobenie 1*:
-do pomocnej dočasnej bunky si dajte číslo 1
-Ctrl+C
-označte celú oblasť C5:BJ15
-pravý klik na označenú oblasť - Prilepiť špeciálne
-zaškrtnite Hodnoty, Násobenie
-OK
-zmažte tú pomocnú bunku s 1

Rozkopírovanie vzorca:
-do BM6 zadajte vzorec
=SUMIF($C$5:$BJ$5;BM$5;$C6:$BJ6)
-na BM6 dajte Ctrl+C
-označte celú oblasť vzorcov BM6:BV15
-pravý klik na oblasť - Možnosti vloženia - Vzorce

No predsa "Použiť dátumový systém 1904". Nájdete to v nastaveniach Rozšírené.

Príklad. Stále treba myslieť na to, že je tam kladné číslo. Znamienko iba pomocou PF pre vizuál.

To je predsa jednoduché.
Terazky dávam zbrucha bez skúšania.
Namiesto číselného parametru, zakomponujte vzorec, ktorý si ten číselný parameter vypočíta.
Ten definovaný názov "zákazník" obsahuje čo? Odkazuje kam?
Je v ňom písmeno stĺpca? Teda "B" alebo "AC" atď? COLUMN(INDIRECT(zákazník&"1"))-5
SLOUPEC(NEPŘÍMÝ.ODKAZ(zákazník&"1"))-5

{to číslo 5 je korekcia indexu stĺpca, ak je tabuľka odsadená od okraja}
Alebo je v ňom "Leden", "Únor" a to sú hlavičky stĺpcov Tabuľky/tabuľky?
MATCH(zákazník;riadok hlavičky tabuľky;0)
POZVYHLEDAT(zákazník;riadok hlavičky tabuľky;0)

Vyskúšajte

Pridal som podrobný popis a nejaké funkcie a hlášky navyše...


Strana:  1 ... « předchozí  4 5 6 7 8 9 10 11 12   další » ... 287

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