Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  99 100 101 102 103 104 105 106 107   další » ... 302

Ja by som to nerobil cez Copy+PasteValues, ale rovno priradenie hodnôt.
Sub NACIST_NEWDATA()
Dim Radek As Long
Dim Pocet As Long

' Počet nových položek, určující je sloupec A:A
Pocet = wsNewData.Cells(Rows.Count, "A").End(xlUp).Row - 2
If Pocet = 0 Then MsgBox "Nejsou žádná nová data.", vbExclamation: Exit Sub

' První volný řádek v DB, určující je sloupec A:A
Radek = wsVTabulce.Cells(Rows.Count, "A").End(xlUp).Row + 1

With wsNewData.Range("B3").Resize(Pocet)
' Datum
wsVTabulce.Cells(Radek, "A").Resize(Pocet).Value = Date

' Značka
wsVTabulce.Cells(Radek, "D").Resize(Pocet).Value = .Value

' Kód, název, bližší určení
wsVTabulce.Cells(Radek, "F").Resize(Pocet, 3).Value = .Offset(0, 1).Resize(, 3).Value

' Skupina
wsVTabulce.Cells(Radek, "R").Resize(Pocet).Value = .Offset(0, 4).Value

' Dodavatel
wsVTabulce.Cells(Radek, "L").Resize(Pocet).Value = .Offset(0, 5).Value

' Položky
wsVTabulce.Cells(Radek, "K").Resize(Pocet).Value = .Offset(0, 6).Value

' Kopírované data
wsVTabulce.Cells(Radek, "AV").Resize(Pocet, 10).Value = .Offset(0, 17).Resize(, 10).Value
End With

MsgBox "Zapsáno " & Pocet & " nových řádků do databáze.", vbInformation
End Sub

Za mňa nič, rád som pomohol.

EDIT: Ba predsa len niečo, necitujte takéto dlhé príspevky. Ď.

OT: Nie neživím sa Excelom, a nieje to ani koníček, ale skôr poriadna kobyla 2

lugr napsal/a:

... stydím ...
???
To určite nieje prečo!
Za 1. nikto nepovedal, či to čo som spravil je správne, možno je to konina, a ešte k tomu čeština vyskloňovaná od slováka, čiže bársjaká blbosť tam môže byť. A za 2. keď vynakladáte snahu, nemôžete sa za ňu hanbiť. Mňa nakopol práve ten Váš vzorec.

Snáď vyskloňované dobre 5
=CHOOSE(MID(TEXT(A1;"000000000,00");1;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&CHOOSE(MID(TEXT(A1;"000000000,00");2;1)+1;;CHOOSE(MID(TEXT(A1;"000000000,00");3;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&IF(--(MID(TEXT(A1;"000000000,00");2;1))=1;"";CHOOSE(MID(TEXT(A1;"000000000,00");3;1)+1;;IF(--(MID(TEXT(A1;"000000000,00");1;3))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))
&IF(--(MID(TEXT(A1;"000000000,00");1;3))>4;"milionů";CHOOSE(--(MID(TEXT(A1;"000000000,00");1;3))+1;;"milion";"miliony";"miliony";"miliony"))

&CHOOSE(MID(TEXT(A1;"000000000,00");4;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&CHOOSE(MID(TEXT(A1;"000000000,00");5;1)+1;;CHOOSE(MID(TEXT(A1;"000000000,00");6;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&IF(--(MID(TEXT(A1;"000000000,00");5;1))=1;"";CHOOSE(MID(TEXT(A1;"000000000,00");6;1)+1;;IF(--(MID(TEXT(A1;"000000000,00");4;3))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&IF(--(MID(TEXT(A1;"000000000,00");4;3))>4;"tisíc";CHOOSE(--(MID(TEXT(A1;"000000000,00");4;3))+1;;"tisíc";"tisíce";"tisíce";"tisíce"))
&CHOOSE(MID(TEXT(A1;"000000000,00");7;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&CHOOSE(MID(TEXT(A1;"000000000,00");8;1)+1;;CHOOSE(MID(TEXT(A1;"000000000,00");9;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&IF(--(MID(TEXT(A1;"000000000,00");8;1))=1;"";CHOOSE(MID(TEXT(A1;"000000000,00");9;1)+1;;IF(--(MID(TEXT(A1;"000000000,00");7;3))=1;"jeden";"jedna");IF(INT(A1)=2;"dvě";"dva");"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&IF(INT(A1)>0;IF(INT(A1)=1;" koruna";IF(INT(A1)<5;" koruny";" korun")))

&IF(--(RIGHT(TEXT(A1;"000000000,00");2))=0;"";IF(INT(A1)>0;" a ";"")&CHOOSE(MID(TEXT(A1;"000000000,00");11;1)+1;;CHOOSE(MID(TEXT(A1;"000000000,00");12;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&IF(--(MID(TEXT(A1;"000000000,00");11;1))=1;"";CHOOSE(MID(TEXT(A1;"000000000,00");12;1)+1;;IF(--(RIGHT(TEXT(A1;"000000000,00");2))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&IF(RIGHT(TEXT(A1;"000000000,00");2)+0=1;" haléř";IF(RIGHT(TEXT(A1;"000000000,00");2)+0<5;" haléře";" haléřů")))


EDIT: No dobre, tak som to aj preložil do CZ:
=ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");1;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");2;1)+1;;ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");3;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");2;1))=1;"";ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");3;1)+1;;KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");1;3))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))
&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");1;3))>4;"milionů";ZVOLIT(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");1;3))+1;;"milion";"miliony";"miliony";"miliony"))

&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");4;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");5;1)+1;;ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");6;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");5;1))=1;"";ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");6;1)+1;;KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");4;3))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");4;3))>4;"tisíc";ZVOLIT(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");4;3))+1;;"tisíc";"tisíce";"tisíce";"tisíce"))
&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");7;1)+1;;"sto";"dvěstě";"třista";"čtyřista";"pětset";"šestset";"sedmset";"osmset";"devětset")
&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");8;1)+1;;ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");9;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");8;1))=1;"";ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");9;1)+1;;KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");7;3))=1;"jeden";"jedna");KDYŽ(CELÁ.ČÁSTA1)=2;"dvě";"dva");"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&KDYŽ(CELÁ.ČÁSTA1)>0;KDYŽ(CELÁ.ČÁSTA1)=1;" koruna";KDYŽ(CELÁ.ČÁSTA1)<5;" koruny";" korun")))

&KDYŽ(--(ZPRAVA(HODNOTA.NA.TEXT(A1;"000000000,00");2))=0;"";KDYŽ(CELÁ.ČÁSTA1)>0;" a ";"")&ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");11;1)+1;;ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");12;1)+1;"deset";"jedenáct";"dvanáct";"třináct";"čtrnáct";"patnáct";"šestnáct";"sedmnáct";"osmnáct";"devatenáct");"dvacet";"třicet";"čtyřicet";"padesát";"šedesát";"sedmdesát";"osmdesát";"devadesát")
&KDYŽ(--(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");11;1))=1;"";ZVOLIT(ČÁST(HODNOTA.NA.TEXT(A1;"000000000,00");12;1)+1;;KDYŽ(--(ZPRAVA(HODNOTA.NA.TEXT(A1;"000000000,00");2))=1;"jeden";"jedna");"dva";"tři";"čtyři";"pět";"šest";"sedm";"osm";"devět"))

&KDYŽ(ZPRAVA(HODNOTA.NA.TEXT(A1;"000000000,00");2)+0=1;" haléř";KDYŽ(ZPRAVA(HODNOTA.NA.TEXT(A1;"000000000,00");2)+0<5;" haléře";" haléřů")))

Pole tam nieje na odobranie duplicity, ale na hromadné načítanie a hromadný zápis hodnôt (nie bunku po bunke).

Duple odoberá kolekcia, konkrétne priradenie jedinečného kľúča v Add, v kombinácii s On Error. Funguje to tak, že záznamu v kolekcii sa okrem samotnej hodnoty priradí aj jedinečný kľúč (to isté ako hodnota). A keďže je to kľúč jedinečný, nedovolí pridať rovnakú hodnotu s rovnakým kľúčom 2x. Vznikne pri tom chyba, ktorú odchytí a spracuje On Error. Na konci sú v kolekcii iba jedinečné záznamy.

nemuselo, stačilo pridať on error, a kľúč v kolekcii, ale ja mám radšej polia :)

Pr.

???
Takže Vy nechcete nič vypisovať, žiadne slová, ale iba určiť koľko je slov, a 2x toľko buniek vyfarbiť?
Tak zmažte všetky vzorce, označte H5, a zmente PF na
=(LEN(TRIM($H5))-LEN(SUBSTITUTE(TRIM($H5);" ";""))+(LEN(TRIM($H5))>1))*2>=COLUMN()-8
=(DÉLKA(PROČISTIT($H5))-DÉLKA(DOSADIT(PROČISTIT($H5);" ";""))+(DÉLKA(PROČISTIT($H5))>1))*2>=SLOUPEC()-8

Malo by to byť ošetrené aj na dvojmedzeru medzi slovami.

Ak chcete čokoľvek iné, NEDÁVAJTE UŽ ŽIADNE SLOVNÉ POPISY, ale PRILOŽTE MANUÁLNE VYROBENÝ POŽADOVANÝ VÝSLEDOK. Nech sa nemusí tipovať, čo asi chcete.

Beriem to ako 2 frky, a oba dobré 5

Vysvetliť ??? To by bolo na dlho. Skúsim to iba krátko popísať.
Pre zjednodušenie chápania vzorcov je použitých niekoľko Definovaných názvov:

PODSKUPINA
=OFFSET(STOPS!$K$1;MATCH(DISORDER_A!$A2;STOPS!$B$2:$B$1998;0);;COUNTIF(STOPS!$B$2:$B$1998;DISORDER_A!$A2))
=POSUN(STOPS!$K$1;POZVYHLEDAT(DISORDER_A!$A2;STOPS!$B$2:$B$1998;0);;COUNTIF(STOPS!$B$2:$B$1998;DISORDER_A!$A2))
MATCH nájde pozíciu (druhý riadok má index 1), kde sa nachádza lis
COUNTIF zistí počet záznamov toho lisu
OFFSET použije tieto 2 hodnoty na nastavenie oblasti podskupiny (predpoklad je, že sú pokope zoskupené !!!)
Pri zadávaní tohto vzorca do Def. názvu je potrebné stáť na 1. výsledkovej bunke E2.

POZNAMKA
=OFFSET(PODSKUPINA;;2)
=POSUN(PODSKUPINA;;2)
Poznámka je tá istá oblasť, len posunutá o 2 vpravo

PROSTOJ
=OFFSET(PODSKUPINA;;-5)
=POSUN(PODSKUPINA;;-5)
Prostoj je opäť tá istá oblasť, len posunutá o 5 vľavo

CHYBY
=((PODSKUPINA<>"")*1)+((POZNAMKA<>"")*2)
=((PODSKUPINA<>"")*1)+((POZNAMKA<>"")*2)
Kvôli spájaniu pomlčkou " - " treba rozlíšiť 4 stavy:
-žiadna chyba ani v Podskupine, ani v Poznámke (0 nebude nič písať)
-chyba iba v Podskupine (1 nebude dávať za ňu pomlčku)
-chyba iba v Poznámke (2 nebude dávať pomlčku pred ňu)
-chyby aj v Podskupine aj v Poznámke (3 bude medzi ne dávať pomlčku)
tie spočítané príznaky (0,1,2,3) sa nakoniec použijú v CHOOSE/ZVOLIT na určenie toho, čo sa má udiať ohľadom pomlčky.

IDX_CHYBY
=IF(CHYBY>0;ROW(PODSKUPINA)-MIN(ROW(PODSKUPINA))+1)
=KDYŽ(CHYBY>0;ŘÁDEK(PODSKUPINA)-MIN(ŘÁDEK(PODSKUPINA))+1)
Keďže niektoré riadky v oblasti lisu nemusia obsahovať chybu, potrebujeme si zistiť indexy tých v oblasti, ktoré chybu majú. Takže otestujeme predošlý názov CHYBY na číslo >0 a priradíme mu vypočítaný index (teda riadok oblasti lisu mínus prvý riadok oblasti lisu [MIN slúži na určenie 1. riadku, dá sa použiť aj MATCH ako v prvom vzorci])

PORADIE_CHYBY
=SMALL(IDX_CHYBY;INT((COLUMN()-5)/3)+1)
=SMALL(IDX_CHYBY;CELÁ.ČÁST((COLUMN()-5)/3)+1)
No a tento Def. názov už iba vracia postupne od najmenšieho indexy, v ktorých sa nachádza nejaká chyba (predchádzajúci Def. názov IDX_CHYBY). Poradové číslo chyby sa mení vždy každé 3 stĺpce. Teda E,F,G = 1; H,I,J = 2; K,L,M = 3 ...

Kompletujúci vzorec je
=IFERROR(CHOOSE(INDEX(CHYBY;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY);INDEX(POZNAMKA;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY));"")
=IFERROR(ZVOLIT(INDEX(CHYBY;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY);INDEX(POZNAMKA;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY));"")
V ňom sa na základe CHYBY (viď popis) rozhoduje či sa uplatní
1 - chyba iba v Podskupine
INDEX(PODSKUPINA;PORADIE_CHYBY)2 - chyba iba v Poznámke
INDEX(POZNAMKA;PORADIE_CHYBY)3 - obe chyby
INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY)0 - stav bez chyby ošetruje IFERROR, lebo CHOOSE s parametrom 0 dá chybovú hodnotu (musí začínať od 1), a to vyrieši IFERROR.

To bez chyby sa dá urobiť aj tak, že sa k CHYBY pripočíta 1 a riešenie stavov v CHOOSE bude
1 - bez chyby
""2 - chyba iba v Podskupine
INDEX(PODSKUPINA;PORADIE_CHYBY)3 - chyba iba v Poznámke
INDEX(POZNAMKA;PORADIE_CHYBY)4 - obe chyby
INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY)

Načítanie času je jednoduché, podľa rovnakého princípu indexu chyby

Čas v minutách, tu som urobil chybu, treba
=IF(F2="";"";MINUTE(F2))
=KDYŽ(F2="";"";MINUTA(F2))
opraviť napr. na toto
=IF(F2="";"";TEXT(F2;"[m]")*1)
=KDYŽ(F2="";"";HODNOTA.NA.TEXT(F2;"[m]")*1)

EDIT: Príloha v pôvodnom príspevku vymenená za novú s týmto novým počítaním minút.

2 pr.

No skúste, či to bude použiteľné...

Ak som to pochopil správne, tak sa dá použiť aj kratší vzorec:
=TRIM(MID(SUBSTITUTE($A2;" ";REPT(" ";LEN($A2)));(COLUMN(A1)-1)*LEN($A2)+1;LEN($A2)))
=PROČISTIT(ČÁST(DOSADIT($A2;" ";OPAKOVAT(" ";DÉLKA($A2)));(SLOUPEC(A1)-1)*DÉLKA($A2)+1;DÉLKA($A2)))

@simplynever1: Na pochopenie každého vzorca odporúčam použiť na karte "Vzorce" krokovanie vzorca pomocou "Vyhodnotiť vzorec". Samozrejme nie na 2000 riadkoch, ale iba na 10, aby ste videl, čo sa deje.


Strana:  1 ... « předchozí  99 100 101 102 103 104 105 106 107   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