Příspěvky uživatele


< návrat zpět

ano, presne jak to rikate, potrebuji skutecnou vzdalenost po trase... proto hledam nejake rozume reseni, ale bohuzel zatim jsem nenasel zadnou nahradu za strejdu GOOGLE

ahoj,
zkus jestli je to ono co potrebujes...

chapu, ale diky jeste jednou za vzorec :-)

Super dekuji moc za vzorek funkci, vypada to dobre :-)
Ten vypocet pres internet vypada, ze to bude asi pekny orisek, ze?

Zdravim vsechny,
prosim o radu zkusenejsich "excelaku".
Resim problem - automaticke pocitani vzdalenosti kilometru v excelu z bodu A do bodu B.
Pouzival jsem funkci "G_Distance" kterou jsem nasel na netu, fungovala bezvadne a to tim stylem,
ze si to spocitalo trasu na google maps. Ale Google ted zavedl API_key a uz to bohuzel nefunguje,
tak hledam nejakou nahradu. Nemusi to byt primo od google,
klidne misto toho by mohlo byt mapy.cz nebo openstreetmap nebo neco podobneho,
zkratka aby po zadani bodu A a bodu B to spocitalo samo vzdalenost :-)

Pak me jeste napadlo, kdyz nepujde udelat automatikcy vypocet km pres internet,
zeby udelal nejakou tabulku napevno, kde uz jsou ti kilometry dane,
ale nevim jakou mam pouzit funkci na vyhledavani aby me to naslo to co potrebuji.
Predem dekuji za jakykoliv napad :-)
V priloze prikladam vzorovy soubor.

To by bylo asi nejednoduše, ale jde o to, že ten sešit budou používat víc lidi (doplňovat data), takže je vetší pravděpodobnost že se udělá víc chyb, než se to načte pomoci funkce Svyhledat, zároveň data se budu pak vázat na vypočet jiných tabulek.
Podmínky typu vyrobek1 – 1 řádek, vyrobek2 – 2 řádky, když nebudou fungovat tak se podstatě nic nedej (byl to jen nápad), prázdné buňky se vymažou ručně. Spiš mě jde o to aby to makro pomoci Svyhledat bylo rychle, ale nevím jestli je to vůbec možné, když tam bude kvanta dat …. Ale každopádně děkuji za Vaše reakce.

Díky, o něco se to makro zrychlilo ale mam obavy že, když ten sešit bude zaplněn spousta datama že se to stejné zpomalí víc. Ještě by se chtěl zeptat, dalo by nějak ošetřit že při nahraní makra aby to vyhodnotilo jestli pod daným číslem se nachází jeden, dva nebo tři výrobky a podle toho se do doplní vzorcem. Do první prázdné buňky ve sloupečku D se napíše číslo a pak se zpustí makro a podle toho čísla se makro rozhodne kolik řádku má doplnit vzorcem.
Příklad:
Když pod číslem 6040113 – je jen jeden výrobek tak se nahraje marko jen pro jeden výrobek – 1 řádek se vzorcem
Pod číslem 6040114 – je dva výrobky, takže by se nahrálo jen dva výrobky a to 2 řádky vzorců.
Ted momentálně mam nastavené tak že se vždycky nahraje 4 přichystané řádky, to co zůstane prázdné tak to vymažu ručně.
Níže přikládám soubor.

Zdravím všechny,
Mam takový menší problém, nahrál jsem makrorekoderem makro, kde jsem použil funkce:
IF
ISERROR
VLOOKUP
makro funguje a děla co má, a to:
po zmáčknutí tlačítka z makrem, se do určitých buněk se doplní vzorec
=IF(ISERROR(VLOOKUP……..
(Kde jsou zadané podmínky kde se má hledat data, podstatě z jednoho listu („výrobek“) vyhledá údaje a přidá do druhého listu („data“) požadované údaje podle zadaných parametru), ale bohužel to hodně zpomaluje samotný chod makra. Chtěl jsem se zeptat dalo se by nějak přepsat makro, aby se to zrychlilo, nebo nasměrovat na nějaké stránky kde by se dalo najit řešení. Ve VBA jsem začátečník, tak budu rad za každou pomoc.
Předem dekuji za odpověď. Níže je ukázka kódu makra.

kod:

Sub prida_data_do_bunek()
'
' prida_data_do_bunek Makro
' prida pozadovana data do vybranych bunek pomoci funkci SVYHLEDAT
'

'
ActiveCell.Offset(1, -1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=R[-1]C"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=R[-2]C"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=R[-3]C"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-1],vyrobek!R2C1:R10000C26,2,FALSE)),""no data"",VLOOKUP(RC[-1],vyrobek!R2C1:R10000C26,2,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-1],vyrobek!R2C1:R10000C26,3,FALSE)),""no data"",VLOOKUP(R[-1]C[-1],vyrobek!R2C1:R10000C26,3,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-1],vyrobek!R2C1:R10000C26,4,FALSE)),""no data"",VLOOKUP(R[-2]C[-1],vyrobek!R2C1:R10000C26,4,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-1],vyrobek!R2C1:R10000C26,5,FALSE)),""no data"",VLOOKUP(R[-3]C[-1],vyrobek!R2C1:R10000C26,5,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-2],vyrobek!R2C1:R10000C26,6,FALSE)),""no data"",VLOOKUP(RC[-2],vyrobek!R2C1:R10000C26,6,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-2],vyrobek!R2C1:R10000C26,7,FALSE)),""no data"",VLOOKUP(R[-1]C[-2],vyrobek!R2C1:R10000C26,7,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-2],vyrobek!R2C1:R10000C26,8,FALSE)),""no data"",VLOOKUP(R[-2]C[-2],vyrobek!R2C1:R10000C26,8,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-2],vyrobek!R2C1:R10000C26,9,FALSE)),""no data"",VLOOKUP(R[-3]C[-2],vyrobek!R2C1:R10000C26,9,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-3],vyrobek!R2C1:R10000C26,10,FALSE)),""no data"",VLOOKUP(RC[-3],vyrobek!R2C1:R10000C26,10,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-3],vyrobek!R2C1:R10000C26,11,FALSE)),""no data"",VLOOKUP(R[-1]C[-3],vyrobek!R2C1:R10000C26,11,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-3],vyrobek!R2C1:R10000C26,12,FALSE)),""no data"",VLOOKUP(R[-2]C[-3],vyrobek!R2C1:R10000C26,12,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-3],vyrobek!R2C1:R10000C26,13,FALSE)),""no data"",VLOOKUP(R[-3]C[-3],vyrobek!R2C1:R10000C26,13,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-4],vyrobek!R2C1:R10000C26,14,FALSE)),""no data"",VLOOKUP(RC[-4],vyrobek!R2C1:R10000C26,14,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-4],vyrobek!R2C1:R10000C26,14,FALSE)),""no data"",VLOOKUP(R[-1]C[-4],vyrobek!R2C1:R10000C26,14,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-4],vyrobek!R2C1:R10000C26,14,FALSE)),""no data"",VLOOKUP(R[-2]C[-4],vyrobek!R2C1:R10000C26,14,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-4],vyrobek!R2C1:R10000C26,14,FALSE)),""no data"",VLOOKUP(R[-3]C[-4],vyrobek!R2C1:R10000C26,14,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-5],vyrobek!R2C1:R10000C26,15,FALSE)),""no data"",VLOOKUP(RC[-5],vyrobek!R2C1:R10000C26,15,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-5],vyrobek!R2C1:R10000C26,15,FALSE)),""no data"",VLOOKUP(R[-1]C[-5],vyrobek!R2C1:R10000C26,15,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-5],vyrobek!R2C1:R10000C26,15,FALSE)),""no data"",VLOOKUP(R[-2]C[-5],vyrobek!R2C1:R10000C26,15,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-5],vyrobek!R2C1:R10000C26,15,FALSE)),""no data"",VLOOKUP(R[-3]C[-5],vyrobek!R2C1:R10000C26,15,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-6],vyrobek!R2C1:R10000C26,16,FALSE)),""no data"",VLOOKUP(RC[-6],vyrobek!R2C1:R10000C26,16,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-6],vyrobek!R2C1:R10000C26,16,FALSE)),""no data"",VLOOKUP(R[-1]C[-6],vyrobek!R2C1:R10000C26,16,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-6],vyrobek!R2C1:R10000C26,16,FALSE)),""no data"",VLOOKUP(R[-2]C[-6],vyrobek!R2C1:R10000C26,16,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-6],vyrobek!R2C1:R10000C26,16,FALSE)),""no data"",VLOOKUP(R[-3]C[-6],vyrobek!R2C1:R10000C26,16,FALSE))"
ActiveCell.Offset(-3, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-7],vyrobek!R2C1:R10000C26,17,FALSE)),""no data"",VLOOKUP(RC[-7],vyrobek!R2C1:R10000C26,17,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-7],vyrobek!R2C1:R10000C26,18,FALSE)),""no data"",VLOOKUP(R[-1]C[-7],vyrobek!R2C1:R10000C26,18,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-2]C[-7],vyrobek!R2C1:R10000C26,19,FALSE)),""no data"",VLOOKUP(R[-2]C[-7],vyrobek!R2C1:R10000C26,19,FALSE))"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-3]C[-7],vyrobek!R2C1:R10000C26,20,FALSE)),""no data"",VLOOKUP(R[-3]C[-7],vyrobek!R2C1:R10000C26,20,FALSE))"
ActiveCell.Offset(1, -6).Range("A1").Select
End Sub

Super, funguje to … díky moc :-)

Zdravím všechny uživatele tohoto fóra, potřeboval by radu odborníku.
Mam udělaný soubor, kde jsou dva formuláře (dělají jednu a tu stejnou věc). Je to zatím jen testovací soubor, takže jeden z formulářů pak půjde odstranit. Děla to podstatě co má, ale nemůžu bohužel přijít nato jak nastavit TextBox aby mě vyhledával údaje podle přesných zadaných hodnot které se zapíšou do TexBox1 (políčko z názvem Výrobní číslo: ).
Jde o to, když napíšu přesné číslo řekneme 15100 – tak po kliknuti na jiny TexBox mě to vyhledá a do zbylých poliček mě to napíše údaje co je v sešitů Excelu. Ale problém je v tom, že když se napíše třeba číslo 15, tak to vyhledá hned první položku ve které je číslo 15, nebo když napíšu číslo 1, tak mě to hodí chybu. Můžete mě poradit jak nastavit v makru (TextBox nebo nějaké makro), které přesné provede vyhledávaní určitého čísla nebo výrazu aby to neházelo chybu a nevyhledávalo jen poloviční hodnotu.
Snad jsem to popsal srozumitelně. Za každou radu Vám předem dekuji. Dany soubor přikládám v příloze.


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