ZOrder, prekrivanje oblik

Pomoč pri izdelavi makrov
Odgovori
dragopre
Prispevkov: 117
Pridružen: To Dec 11, 2012 11:46 pm

ZOrder, prekrivanje oblik

Odgovor Napisal/-a dragopre »

Pozdravljeni
Na list rišem veliko število oblik (rodovnik - predniki) s podatki in povezavami. Postopek večkrat ponovim, glede na izbrano osebo.
Imam pa na listu tudi kvadrat, v katerem je napisano navodilo. Skrijem ga tako, da ga pozicioniram daleč desno. Pri zahtevi "Navodilo" ga premaknem v vidni del lista. Težava je v tem, da je navodilo postavljeno v ozadje. Razumljivo. Ostali gradniki so bili kreirani/narisani kasneje.
Poskušal sem se rešiti z ukazom:

Koda: Izberi vse

ActiveSheet.Shapes(PcNavNav).ZOrder msoBringToFront
, vendar ni efekta.

Lep pozdrav in hvala za vašo pomoč

Drago
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: ZOrder, prekrivanje oblik

Odgovor Napisal/-a admin »

Pozdravljeni,

To je povsem pravilna koda in deluje. Sklepam, da imate napačno vrednost v spremenljivki PcNavNav in da v ospredje postavite nek drug lik
lp,
Matjaž Prtenjak
Administrator
dragopre
Prispevkov: 117
Pridružen: To Dec 11, 2012 11:46 pm

Re: ZOrder, prekrivanje oblik

Odgovor Napisal/-a dragopre »

Pozdravljeni
Vrednost spremenljivke je pravilna. Sem pa imel zaščiten list. Ko sem pred ukazom ZOrder preklical zaščito, pa deluje.
Zanimivo pa je, da pri ukazu ZOrder, ki se zaradi zaščite ni izvedel, ni bilo napake kot npr. pri poskusu spremembe vrednosti zaščitene celice.
Nekaj podobnega se mi je pred časom dogajalo ( ne vem več točno kateri ukaz), pa se mi je "samo" rešilo. Sem pa tudi takrat nekaj "telovadil" z zaščito lista. Ukaza "On Error Resume Next" ni v kodi.
V kakšnem primeru se še lahko zgodi, da ukaz ni izveden, pa ni prekinitve?

Hvala za vaš trud

Drago
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: ZOrder, prekrivanje oblik

Odgovor Napisal/-a admin »

Pozdravljeni,

Zadeva no tako preprosta, kot si jo vi predstavljate. Vi ste napisali, da se ukaz "ni izvedel". Seveda se je izvedel! Ukaz ne more naknadno preverjati ali se je nekaj potem tudi res zgodilo.

Če vam kot primer podam "izris kroga". Obstaja ukaz za izris kroga in ko ga izvedete, se bo na ekranu izrisal krog. Vendar ta ukaz ne preverja ali se je na ekranu potem tudi zares izrisal krog. Kje pa naj se to ustavi? Ali naj potem ukaz preveri da je prižgan monitor?

Vi uporabljate zaklepanje lista in vedeti morate da 90% zadev na zaklenjenem listu ne deluje in pika. To je to.

Kadar uporablajte zaklepanje listov se navadite sledečega načina dela:

* Postavite zaščito On Error GoTo xxxx
* odklenite list
* naredite vse kar je potrebno narediti
* zaklenite list
* pojdite iz funkcije
xxx
* Izpišite napako - če je program prišel do sem se je zgodilo nekaj narobe
* zaklenite list
lp,
Matjaž Prtenjak
Administrator
Odgovori