Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  46 47 48 49 50 51 52 53 54   další » ... 302

Tak podmienený formát si už nejako vypodmienkujte. napr. takto. Len presne bude záležať od ktorého riadku začínajú data, či je medzi dvojicami medzera, a pod. To všetko je pre PD podstatné.

Tak niekam vhodne, napr. pred
Posledni = .Cells(Rows.Count, 1).End(xlUp).Row
vložte riadok
.Range("A:TV").EntireColumn.Hidden = False

Ak chcete pridať tlačítko, musíte mu nastaviť meno. Karta "Domov" - vpravo "Nájsť a vybrať" - "Tabla výberu". Tam som ich pomenoval "btn1", "btn2", ... aby sa dali v makre jednoducho identifikovať. Ak chcete meniť počet tlačítok, dá sa to urobiť aj tak, že iba nove tlačítko pomenujete tak, aby boli všetky tlačítka o ktoré sa jedná, rovnako pomenované, a makro si ich nájde samé, keď budú spĺňať nejakú podmienku, napr. názov začína na "btn". Chápeme sa?

To zaskrolovanie+označenie poslednej bunky v A sa dá urobiť aj tak, že sa zistí viditeľná oblasť listu (pretože môže byť okno rôznej veľkosti, zoomu apod), a zaskroluje sa tak, aby bola tá označená bunka na spodku viditeľnej časti. Lebo teraz je na vrchu, a tie bunky nad ňou nevidno. Teraz som to dal tak, aby ostalo viditeľných 5 buniek nad ňou.

Keďže sa tie názvy používajú na 2 miestach, tak som urobil na začiatku konštantu, a stačí zmeniť iba tú jednu.

Odstránil som tie komentáre, čo ste tam mali, lebo mi to stále písalo, že súbor obsahuje nejaké problémy. Už je to OK. Tak si ich prípadne doplňte.

Dajte vedieť o tej prípadnej zmene tlačítok a počtu stĺpcov na dynamické...

Tak toto by som urobil inak. Predpokladám, že v reále namiesto Buňka 1, Buňka 2, ... sú tam nejaké texty. Tak by som to urobil jedným jediným makrom, ktoré by si našlo v 12. riadku správnu pozíciu podľa nápisu na stlačenom tlačítku. Toto uvádzam len jednu z možností. Kľudne sa to dá urobiť na dynamický počet tlačítok, dynamický počet stĺpcov a pod.

Ďalších niekoľko príkladov. To sa dá nakombinovať, rôzne možnosti, presne podľa toho čo makrá robia (nevieme), koľko je tlačítok (nevieme), ako sú rozmiestnené (nevieme), stály/dynamický počet (nevieme), ich názvy (nevieme), podmienený formát, zápis pod tlačítko, zápis do spoločnej bunky, počítanie na základe riadku, ...

Príklad pri každom uložení súboru.

Našiel som si nejaké staršie verzie, no nejako sa mi to zlieva a neviem určiť čo ste zmenil oproti verziám z 14.9.,3x 15.9., 3x 16.9., 19.9. Ale ten posledný ste asi Vy nevidel, tak som sa to pokúšal prerobiť na Tabuľku namiesto tabuľky. Ale väčšinou to končí práve na tom, že ma prestane baviť stále zisťovať logické súvislosti a následne prerábať (a často aj vysvetľovať logické nezmysly). A obávam sa, že niečo také nastalo aj v týchto súboroch, že to prekročilo nejakú medzu a "opustil" som Vás...
Budem úprimný, neviem či sa mi do toho chce.

Njn, zase tie sklady, čo som robil pred časom ... 7
"v automatickém filtru vyberu které data chci importovat"
Vy chcete filtrovať dáta v tom súbore, z ktorého chcete importovať dáta, ktorý ste práve otvoril?

"kliknu ok"
Ten súbor, ale predpokladám žiadne tlačítko nemá. Takže v inventarizačnom súbore bude musieť byť procedúra 2-kroková. Lebo makro, ktoré vyberie a otvorí zdroj, nemá ako zistiť či ste s výberom filtrov spokojný, a práve z tohto súboru a práve teraz chcete načítať vyfiltrované dáta. To je zase problémová "prodleva", lebo treba identifikovať či ste súbor nezatvoril.

VBA zjistí, že tato hodnota již ve sloupci C existuje, Procedura se ukončí s hláškou "Tyto produkty byli již importovány a data se nebudou kopírovat.
Takže napr. 5000 hlášok? Alebo pri prvej kolízii ukončí aj import validných dát?

vypíše mi kolik řádků bude importovat, zkontroluje sloupce C
Záleží na predchádzujúcej odpovedi. Nemôže najprv vypísať koľko riadkov bude importovať, ak nich najskôr neskontroluje - teda možno je to naopak (skontrolovať a až potom vypísať počet)

D1 se mi zobrazuje kolik je ještě volných řádků
A to chcete akože importovať iba časť nejakého súboru??? A čo zvyšok?

To zas bude upresňujúcich otázok, aby som Vás pochopil, ani sa mi do toho nechce 7

Ale tušíme, len sa nám nechce vymenovávať všetko aj s príkladmi. Tu je jeden. Ďalší by mohol byť tak, že tlačítko bude menšie ako bunka, každé makro zapíše do nejakej nepodstatnej/skrytej bunky hodnotu, na základe ktorej podmienené formátovanie zvýrazní bunku pod tlačítkom. Ďlaej, ak je tlačítkami volané obdobné makro, len s iným parametrom, dá sa urobiť jedno makro, ktoré bude identifikovať na základe Application.Caller, ktoré tlačítko je stlačené - teda nie tak ako je v tomto príklade. Ale to záleží na tom, čo tie makrá robia. A sme zase tam kde pred pár dňami v inej téme 1 Ďalšou možnosťou je použiť ActiveX tlačítka, kde je možnosť zmeny pozadia. Prípadne použiť namiesto tlačítka Shape objekt...
Priložte prílohu. Reálnu a anonymizovanú.

Čo ste nám to poslal za prílohu ??? 5

Záležať bude aj na tom, či sa bude hľadať 2t6552233 z rôznych bunkách, alebo iba v jednej napr. susednej. FIND/NAJÍT hľadá v jednej. Ak potrebujete otestovať nejaký rozsah, či obsahuje niektorá jeho bunka 2t6552233, tak použite COUNTIF(rozsah;"*"&hľadaná hodnota&"*")>0
Opravte tú prílohu za reálnu.

Obe verzie prerobené tak, že je jedno, či je to číslo alebo textočíslo. Každopádne to musí byť prevediteľné na číslo.
Ale ja by som si to určo previedol na čísla. Na to môžu nadväzovať ďalšie problémy ako filtre (časté aj pri dátum vs. textodátum) a pod. Jednorázové prevádzanie sa robí tak, že si niekde do bunky dočasne napíšete 1, tú bunku dáte Ctrl+C, označíte textočísla, pravý klik, Prilepiť špeciálne, Hodnoty a Násobenie, bunku s 1 zmažete. Ak to je často menené, napr. nejaký import, tak priamo v importe by to malo ísť, alebo pomocným stĺpcom so vzorcami ako to máte teraz. A možnosť je samozrejme aj takýto upravený vzorec čo Vám sem teraz dávam, ktorému je to jedno :)
=INDEX(V3:V45;INDEX(SMALL(IF(V3:V45*1<>0;ROW(V3:V45)-2;FALSE);ROW(OFFSET(A1;;;SUM(--(V3:V45*1<>0)))));RANDBETWEEN(1;SUM(--(V3:V45*1<>0)))))
=INDEX(V3:V45;INDEX(SMALL(KDYŽ(V3:V45*1<>0;ŘÁDEK(V3:V45)-2;NEPRAVDA);ŘÁDEK(POSUN(A1;;;SUMA(--(V3:V45*1<>0)))));RANDBETWEEN(1;SUMA(--(V3:V45*1<>0)))))

=SMALL(IF(V3:V45*1<>0;V3:V45*1;FALSE);RANDBETWEEN(1;SUM(--(V3:V45*1<>0))))
=SMALL(KDYŽ(V3:V45*1<>0;V3:V45*1;NEPRAVDA);RANDBETWEEN(1;SUMA(--(V3:V45*1<>0))))

Makrom by to šlo. Pri otvorení/ukladaní súboru by sa definovanému zoznamu mailov poslal mail. Či už Outlookom (na každom PC by musel byť) alebo len k tomuto účelu vytvoreným mailovým účtom gmail bez Outlooku cez tzv CDO (heslo bude v makre uložené, preto použiť iba na tento účel vytvorený učet).

A Vám nevadí, že Vám Excel jasne hovorí (zelený trojuholník), že tie "0" nie sú 0? Veď to tam jasne píše, že máte tie "čísla" uložené ako text. Použite normálne čísla a ten kratší vzorec. O tom, že to musí byť číslo, som písal aj ja.

EDIT:
A u dlhšieho vzorca je problém okrem textočísel aj v tom, že neviete ako funguje, a nesprávne ste ho upravil. Tučným som zvýraznil Vaše chyby. To A1 je tam na získanie číselného radu (indexu) začínajúceho 1 a končiaceho počtom <>0, to A1 bude vždy A1 bezohľadu akú oblasť chcete skúmať. A to -2 tam musíte dať z rovnakého dôvodu, aby ste získali číselný rad podľa počtu skúmaných buniek ale tiež začínajúcim od 1. Preto ak ste na riadku V3 tak -2.
=INDEX(V3:V45;INDEX(SMALL(IF(V3:V45<>0;ROW(V3:V45)-2;FALSE);ROW(OFFSET(A1;;;COUNTIF(V3:V45;"<>"&0))));RANDBETWEEN(1;COUNTIF(V3:V45;"<>"&0))))
=INDEX(V3:V45;INDEX(SMALL(KDYŽ(V3:V45<>0;ŘÁDEK(V3:V45)-2;NEPRAVDA);ŘÁDEK(POSUN(A1;;;COUNTIF(V3:V45;"<>"&0))));RANDBETWEEN(1;COUNTIF(V3:V45;"<>"&0))))

Napr.:
Sub Vyrobit()
Dim D(), i As Long
With ThisWorkbook.Worksheets("Hárok1")
D = .Range("AD4:AD48").Value
For i = 1 To UBound(D, 1)
If D(i, 1) = 0 Then D(i, 1) = Empty
Next i
.Range("E4:E48").Value = D
End With
End Sub

Predpokladám, že formáty v tom E sú nastavené, a tie netreba kopírovať.

EDIT:
Alebo môžete použiť aj nahradenie hodnoty:
Sub Vyrobit()
With ThisWorkbook.Worksheets("Hárok1")
.Range("E4:E48").Value = .Range("AD4:AD48").Value
.Range("E4:E48").Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End With
End Sub

Farby v DropDown-e v Exceli nie sú možné. Jedine naprogramovať makro, ktoré by pri každom označení vybraných (vopred známych) buniek zobrazilo výberovú šípku (tlačítko), a tá by otvárala malý formulár napr. s podfarbenými Label-mi. Po kliku by sa stalo čo? Na čo to má slúžiť?


Strana:  1 ... « předchozí  46 47 48 49 50 51 52 53 54   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