To by malo ísť cez ADO, to Vám ale ja urobiť neviem, takže jedno "krkolomnejšie riešenie" cez Excel.Application. Musí to byť globálna premenná, ktorá je stále inicializovaná, lebo ak by sa vytvárala pri každom kliku, program by bol rýchlostne nepoužiteľný. Takto tú 0,5 sekundy pretrpíte len raz pri otváraní zošitu. Upravil som Vám formát 1000 riadkov na taký aký ste mali v prvých 2 v príklade. Rovnako aj automatické podmienené formátovanie na farbu a orámovanie, a aj vzorec do posledného stĺpca, ktorý vloží text upozorňujúci na kliknutie.
Ako to funguje ?
-pri otvorení seznnam.xlsm, sa vytvorí ešte jedna virtuálna inštancia Excel, v ktorej sa otvorí objednavky.xlsx. Vy to nevidíte, ale to v pamäti otvorené. Teraz nieje problém prenášať údaje.
-ak počas otvoreného seznam.xlsm budete chcieť otvoriť aj objednavky.xlsx tak Vás to upozorní, že zošiť je otvorený a môžete ho otvoriť iba na čítanie.
-kliknutie na bunku, potom len skopíruje data, nemusí vytvárať ani rušiť tú inštanciu Excel, tá sa zruší pri zatvorení zošitu seznam.xlsm automaticky.
-súbor objednavky.xlsx sa ukladá priebežne po každom kliku.
-ak by normálna aplikácia Excel spadla, zostane v pamäti proces Excel.exe, ktorý bude treba zrušiť v Správcovi úloh.
Vyskúšajte, či Vám to bude vyhovovať a stačiť.
Viac neviem pomôcť.
Příloha: 25783_objednavky.rar (68kB, staženo 60x) citovat