ještě tedy obecná otázka - při nekorektním zastavení makra (např. při krokování nebo při zastavení chybou a volbě "End" - je možno obnovit chod maker spouštěných nějakou událostí? Zatím vždy musím zavřít sešit a znovu jej otevřít. Díky.
ahojte, díky za odpovědi, zařídím se. V prvním vlákně jem skončil, protože jsem měl dojem, že již s ničím nepřijde, leželo to tam dlouho bez reakce. Vřelý dík všem a pěkný den.
příloha zde. Dalším mým problémem je, že po zastavení procedury při hlášce Debug - End již nelze znovu spustit proceduru listu doubleclick. Vždy se otevře buňka s kurzorem, nikdy formulář.
dobrý den, v příloze je soubor, který kolabuje na příkazu listbox1.multiselect = 2.
Dvojklikem na sloupec D se otevře formulář, vlevo je listbox2 s problémovým kódem listbox2_change. Volba jakéhokoliv řádku v listbox2 má zrušit všechny výběry v listbox1 a provést nový výběr. Tyto detaily fungují, pro přehlednost jsem je z procedury smazal, odváděly pozornost od problému.
Chyba nastane asi po padesátém spuštění procedury (moje registrované pokusy jsou vypsány úplně vpravo, v buňce M1 se automaticky načítají pokusy od otevření sešitu.
Z různých pokusů jsem vydedukoval, že prvním příznakem problému je dvojí spuštění listbox2_change bez zjevného pokynu. Někdy hned po otevření formuláře a označení řádku v listbox2 se tento ihned odznačí. Zjistil jsem, že proto proběhne procedura dvakrát a při druhém běhu se občas zastaví na uvedeném multiselect. Příkaz multiselect = 0 provede vždy bez problému. Tušíte, čím to může být způsobeno? Alzheimra nemám, ruka se mi netřese. Díky.
ahoj, tak se výše popsaná chyba objevuje znovu, bez zásahu do kódu. Klikem na levý listbox se vyberou jednotlivé položky v pravém listboxu. Funguje to třeba celý den a pak se chyba projeví nejprve tím, že se po kliknutí vlevo vyberou položky vpravo, ale hned zmizí a můj vybraný řádek se odznačí. Zjistil jsem, že po prvním správném běhu makra listbox2.change (až po end sub) se totéž makro spustí znovu. Dělá to i na jiném počítači. Máte tipy na možný důvod druhého běhu? Alzheimra nemám, ruka se mi na myši netřepe, Ani když úmyslně kliknu dvakrát či třikrát na stejný řádek, neznamená to dvojí spuštění vždy. Právě při druhém běhu se stane i chyba s multiselect.
jak říkají u nás v dílně: "Závada odstraněna, příčina nezjištěna."
díky moc za reakci, mezitím jsem celý kód přepsal, protože vznikal samozřejmě cestou pokus - omyl. Přepsáním se mi podařilo také celkově jej zjednodušit a chyba se už neobjevuje. Díky i za nové poznatky o poli, mrknu na to. U tohoto programu mám trochu problém, že někteří kolegové mají ještě excel 2005 a ne všechny příkazy VBA jim fungují, ale to se týkalo hlavně filtrů a datumů. Bez všemožných diskuzí zde, na lašákovi i některých cizích, bych byl v kýblu. Mějte se a přeju žádné "run-time error"
náhodnými pokusy jsem "omezil" chybu (omezil tak, že se zatím při asi 30 opakováních neobjevila), když jsem smazal sub commandbutton3 v tomto formuláři. Nenašel jsem ale nikde ve smazaném kódu odkaz na listbox2, takže nechápu souvislost. Stejným způsobem chyba zatím zmizela, když jsem v sub befordoubleclick, která volá problémový form2, zrušil nastavení cancel = true. Pro mně je sice nežádoucí otevření buňky po dvojkliku, ale aspoň přitom nedělá chybu listbox2. Souvislost opět nechápu.
v příloze je torzo souboru, které vykazuje stejnou chybu. Formulář otevřete dvojklikem na sloupec D, vlevo je listbox2 s výběrem souprav, vpravo je listbox1 s jednotlivými vozy. Po kliknutí na levý listbox proběhne procedura jednou správně a vzápětí dojde k chybě - sám se odznačí řádek v levém listboxu a vymaže výběr v pravém. Tato chyba se stane cca v jednom z pěti pokusů. Druhá výše zmíněná chyba se stane cca po dvaceti opakováních výběru.
Honzovi dík za připomínky, jeho diagnoza je správná, nicméně uvedené zjednodušené zápisy (které se postupně učím) problém neřeší. Vyzkoušel jsem též již dříve.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.