
Vkládání dat z Excelu do (cizího) webového formuláře
Na webu je formulář pro zadávání dat uživateli, kolonky obsahují datum, čísla a texty (asi 10 údajů).
V excelu mám na listu požadované údaje, ve stejném formátu, jako vyžaduje formulář. Ne jednou, ale za více případů, pěkně v tabulce.
Existuje nějaká možnost, jak data jednoho případu (řádku) dostat hromadně do onoho webového formuláře? Pokud k tomu webu mám přístup jen jako uživatel? Pokud bych to chtěl kopírovat v rámci Excelu, postupoval bych tak, že bych na příslušném řádku měl fokus a následným příkazem (makro) bych provedl kopírování z oné databáze do kolonek/buněk cílového listu.
Teď to můžu akorát otrocky po jedné "kolonce" copy/pastovat. Protože vím, že se jedná o docela kontroverzní postup, raději teď neuvedu cílový web. V případě potřeby mohu upřesnit v PM.
Moc tomu nevěřím, že to půjde, ale náhoda je blbec
Díky za reakce.
Nič lepšie, než toto, ma zatiaľ nenapadlo

Program načítava postupne všetky stĺpce prvého riadka (musia byť všetky naplnené), prejde na druhý riadok, prejde v ňom všetky stĺpce, prejde na ďalší riadok atď atď až po posledný riadok.
Informuje, čo máš práve v schránke takže môžeš pastovať do formulára na fokus, ale musíš potom odsúhlasiť MsgBox a máš k dispozícii ďalší údaj...
Toto preklikávanie ale asi nie je to pravé orechové
Aby to aspoň trocha malo zmysel, musíš mať zdroj i cieľ naraz na ploche a to tak, aby MsgBox bol mimo okna cieľa.
Ak máš myš s tlačítkami, ktoré môžeš naprogramovať na Copy a Paste, máš to jednoduchšie.
Tohle vypadá dobře, takto by mě to nenapadlo :)
Akorát musí být připravena "definitivní" excel tabulka, s hodnotami (řádky), které chci do toho webového formuláře zadávat
Pokud by se dalo makro modifikovat, aby fungovalo jen pro určitý řádek (na kterém je fokus) a po kopírování hodnot řádku by skončilo, bylo by to dokonalé :)
Databáze má například 50 řádků a vyplnit do webu chci třeba jen 5 z nich (předem nespecifikovaných, to by měl "určit" právě fokus).
To samozrejme ide. Nie som na pc, takze ak ti to Siki do vecera neurobi, budes to tam mat odo mna cca o 20:00
Riadok v Exceli bude odvodený z aktívnej bunky (je jedno, v ktorom stĺpci sa bude nachádzať aktívna bunka).
Po spustení makro prejde všetkými vyplnenými bunkami riadka, v ktorom sa nachádza aktívna bunka, od prvej po poslednú.
Podmienkou je, že musí ísť o celistvú oblasť, t.j. medzi prvou a poslednou bunkou riadka s aktívnou bunkou sa nesmie vyskytnúť prázdna bunka, inak makro prejde len po prvú prázdnu bunku.
Kvôli rýchlemu opätovnému spusteniu makra pri zmene riadka by som napr. do bunky A1 vložil spúšťacie tlačidlo, alebo makro spúšťal pridelenou klávesovou skratkou.
Je úplne jedno, v ktorom riadku Ti začínajú údaje.
Prvá napĺňaná hodnota každého riadka sa odoberá zo stĺpca "A".
P.S. Nemusíš klikať na "OK" MsgBoxu, stačí stláčať Enter, avšak Enter nahrádza stlačenie OK len ak je aktívny Excel, takže je to asi za jedno...
Vyber si, čo Ti viac vyhovuje:
aktivovať Excel a kliknúť na OK alebo
aktivovať Excel a stlačiť Enter...
Díky moc!
No tak pánové, nepleťte si to tady s hospodou!
Tohle je seriózní server.
To patrí k slušnému úspešnému vyriešeniu problému
OK, tak to si dám s váma!
Ještě bych to potřeboval malinko vylepšit
- data, která potřebuji kopírovat na web, jsou ve sloupcích A až G (kam "končí práci" to makro)
- data, která nakopíruji, označím "x" v buňce H (makrem)
Makro vypadá takto:
- ve sloupci I (kam už makro díky práznému sloupci H nezasáhne) mám číslo, označující kalendářní den měsíce, seřazeno vždy plynule sestupně (to nelze změnit), bez přerušení, končí to "1". Položek=řádků za den je více, takže ve sloupci I je to třeba takto:
31
31
31
31
30
30
29
29
29
26
25
25
25
atd
Potřeboval bych to makro doplnit tak, aby fokus skočil (směrem dolů) na první řádek s nižším datumem (číslem) než kde právě makro "probíhalo". Další podmínkou je, že pokud už na takovém řádku je ve sloupci H záznam "x", aby vybral nejbližší další volný řádek toho dalšího (vlastně předchozího) dne. Pokud neexistuje (pro den může existovat třeba jen jeden - nebo i žádný - záznam), přejít na další den.
Viz obrázek, jak by to mělo "chodit":
Moc děkuji za pomoc. Já to s těmi if v makrech, kdy se prohledávají postupně další a další buňky, prostě neumím...
Program ukončí každý spracovávaný riadok oznamom "Koniec riadka" a označí ho "x"-om.
Pokiaľ za x-om ešte nasleduje ten istý deň, pokračuje ďalej v tento deň kopírovaním do Clipboardu, ak nie, oznámi koniec bloku, skočí na najbližší nižší bez-x-ový deň a čaká na opätovné spustenie.
Pokiaľ zostúpi až na koniec (t.j. v stĺpci I už nie je žiadny dátum), skončí činnosť a oznámi koniec databázy.
P.S.
1 Pokiaľ sa pokúsiš spustiť program v riadku s prázdnym obsahom v stĺpci A alebo v stĺpci už označenom "x", dostaneš hlášku o nekorektnom riadku.
2 Nastavil som to podľa toho, aký príklad si uviedol, t.j. v každom riadku sú naplnené stĺpce A až G, t.j. nezisťuje sa, či niektorý riadok nekončí skôr, než na stĺpci G
Díky.
Ono to má být trochu jinak. Jakmile je ve sloupci H napsáno "x", makro (to kopírování hodnot) musí skončit a najít nejbližší řádek předchozího dne (je to řazeno od 31 k 1), kde ještě nebylo ve sloupci H označeno "x".
Tedy nemělo by platiti toto:
Takže když spustím makro na řádku, kde je ve sloupci I hodnota 25, mělo by to po kopírování a zapsání "x" do I25 skočit na (další) řádek, kde je ve sloupci I hodnota 24. A zároveň ve sloupci H nesmí být "x"
Já na to chtěl jít tak, že nejprve nadu další den a pak budu ověřovat to x.
Ověření x (zda je/není ve sloupci H:
Ale nedařilo se to hledání dalšího (vlastně předchozího) dne:
Tohle nefunguje:
aha, takže Ty neznačíš každý spracovaný riadok x-om ale len prvý výskyt toho dňa a to značí, že ten deň je už komplet spracovaný?
Takže pokiaľ je prvý riadok dňa x-ovaný, tak ten deň je hotový aj keď jeho ostatné riadky nie sú označené?
Vyberu nějaký/libovolný řádek v tom dnu. Po kopírování a zapsání "x" se má makro ukončit a fokus skočit na další den (předchozí den fakticky, ale na řádcích v tabulce níže). A tam také nesmí být ve sloupci H to "x".
Samozřejmě mohu pak zase to makro spustit ve stejném dni a na jiném řádku, jako už bylo. Zapíše se "x" do řádku a zase to skočí na další den - v rámci dne mohu kopírovat klidně více řádků, ale po každém to makro musí skončit (a skočit na další datum).
Ano, pro účely toho makra je vyplnění jediného x = konec makra.
Pak ale to makro zase můžu spustit na jiném řádku stejného dne. Po jeho provedení to zase skočí na další den, kde není x
Prostě po zapsání x chci hledat takový nejbližší řádek, kde je ve sloupci H nižší číslo než v tom řádku, kde se právě x zapsalo. Až makro takový řádek najde (nižší datum, některé dny samozřejmě mohou chybět), ověří se, zda u toho řádku není x. Fokus se pak nastaví třeba na první sloupec takového řádku a makro se zastaví.
Následně je mohu zase ručně! (ne automaticky) spustit, z toho nového dne.
A to se mi právě nedaří...
Makro mi zapsalo "x" do sloupce ("H & Riad")
Vybral jsem vedlejší buňku (I) a její hodnotu (den měsíce) chci označit jako proměnnou (Denmesice)
A pak jsem chtěl spustit cyklus tak dlouho, dokud se ve sloupci I neobjeví nižší hodnota, než byla na řádku, kde se to X zapsalo. A tam mám asi nějakou chybu, skončí mi to na dalším řádku stejného dne, neskočí to na další den (den s nižším číslem)..
Snad nevadí, že hodnota ve sloupci I není tam zapsané číslo, ale výsledek vzorečku =den(řádeksloupec), že se bere z datumu ve sloupci F. Pokud je tam třeba 26 (z datumu 26.10.2016), "poznačí" si
hodnotu
"26"
Nejak takto?
(neskúmal som Tvoj kód, riešim Tvoje slovné vysvetlenia):
To je ono, díky
Já se trápil s For a ono to jde s Do until a loop.
Akorát nevím, proč mi s tím For nešlo.. budu nad tím muset ještě popřemýšlet
pre For potrebuješ nejakú hranicu.
Keď nevieš, koľko položiek budeš preverovať, môžeš pridávať po jednej a testovať s If.
Podľa výsledku testu sa vrátiš alebo postúpiš.
Pre neurčité hranice sú však vhodnejšie Do While, Do Until, Loop, alebo Do, Loop While, Loop Until