Kezdőlap › Fórumok › Excel programozás › [Resolved] Makró futásakor anomália
- This topic has 15 hozzászólás, 3 résztvevő, and was last updated 4 years telt el by XLMotyo.
-
SzerzőBejegyzés
-
2020-08-12-17:24 #7485
Sziasztok!
Írtam egy kis példa makrót (mellékelem, prb.xlsm, Start gomb megnyomása), hogy bemutassam, milyen problémával találkoztam.
A jelenség az, hogy futtatok egy egyszerű műveletet makróval (Start nyomógomb megnyomására egy téglalapot odébb pozicionál és meghív egy MsgBox-ot). Az üzenet meg is jelenik, de csak az üzenet elengedése után jelenik meg a felületen az elmozgatás, miközben a cél az lenne, hogy tájékoztatást adják ezen műveletről. Ha debug-gal indítom, akkor viszont szépen, még a MsgBox előtt látszik az elmozgatás. A makróba beletettem egy értékadást is a MsgBox elé (az egyik cella értéke legyen egy fix érték), az viszont végrehajtódik. Tehát szerintem az lenne az elvárt eredmény, hogy a téglalap elmozdul, a cella értéket kap és utána megjelenik a MsgBox.
Kösz a segítséget előre is, burjanos
2020-08-12-17:40 #7486Mivel az excel file-t nem lehet bemásolni, így a felületet küldöm el, hogy hogyan változott a makró végrehajtása során illetve magát a makrót.
Az első kép az alaphelyzet, itt kell ráklikkelni a Start gombra
Attachments:
You must be logged in to view attached files.2020-08-12-17:41 #7488A Start gomb megnyomása után látszik az értékadás (A7 cellában) és feljön a MsgBox.
Attachments:
You must be logged in to view attached files.2020-08-12-17:42 #7490Leokézva a MsgBox és végrehajtódik a téglalap elmozgatása
Attachments:
You must be logged in to view attached files.2020-08-12-17:43 #74922020-08-12-18:42 #7494Szia!
Zip-et tölts fel, azt engedi.
Imre
2020-08-12-22:31 #74952020-08-12-22:33 #7497A Vissza gomb csak annyit csinál, hogy visszaállítja az alaphelyzetet, hogy lehessen a Start-ot újra nyomni.
2020-08-12-22:58 #7498Szia Imre!
Próba képpen az értékadás sort ( Range(„A7”).Value = 2 ) lecseréltem az adattörlésre ( Range(„A7”).ClearContents ) és így jól működik, azaz a MsgBox megjelenése előtt „frissíti” a felületet, azaz a téglalapot elmozgatja. Ez nagyon érdekes. Mi lehet ennek az oka? Kösz a segítségért.
burjanos
2020-08-13-12:00 #7502Szia!
Az okát nem tudom megmondani, valószínűleg az események feldolgozási sorrendjében kell keresni az okot.
Viszont megoldás van rá, bár a szokásos VBA sufnituning.Ha a téglalap átmozgatása után olyan műveletet kezdeményezel, ami frissíti a képernyőt, akkor meg fog jelenni.
Tehát átteszi ő szegény, csak a képernyő nem követi le.A téglalap átrakása után tegyél be egy sort, Nem csinál érdemlegeset, e ettől frissül a képernyő.
ActiveWindow.SmallScroll down:=0
Imre
2020-08-13-12:25 #7504Szia!
Köszönöm a segítséget.
burjanos
2020-09-06-01:46 #7620Szia Imre!
Találkoztam egy másik „talánnyal” is.
A feladat az, hogy ha egy képre rámegy az egér, akkor mutassa meg a kép kinagyított képét és az egér mozgásával párhuzamosan mozogjon a kinagyított kép.
A feladatot úgy oldottam meg, hogy felvettem egy „Label” vezérlőt akkora méretben, mint a kis kép és rátettem a képre. A „Label”-t láthatatlanná akarom tenni, hogy ne rontsa el az eredeti képet, ezért a BackStyle= 0 – fmBackStyleTransparent-re, a BorderStyle= 0 – fmBorderStyleNone-re állítottam (mivel üres BackColor-t és BorderColor-t nem tudok beállítani). A „Label” vezérlőre programoztam le az egér mozgatását és így jól is működik.
DE
Ha az egér mozgatása közben bármelyik gombbal klikkelek az egérrel, akkor a „Label” láthatóvá válik (feltöltődik a beállított BackColor színnel), azaz elveszti az „átláthatóságát”. Ez egy excel hiba vagy valamit nem állítottam be? Mert szerintem a klikk hatására sem kéne látszódnia a „Label”-nek (hiszen Transparent-re van állítva).Zippelve küldöm az egyszerűsített próba programomat.
Kösz előre is, hogy átgondolod a problémát.
Üdv, burjanos
Attachments:
You must be logged in to view attached files.2020-09-07-23:49 #7622Szia!
Én nem csinálok ilyesmiket az Excellel, így kapásból nem tudok válaszolni.
Így ugyanazt tudom csinálni, amit te is megtettél gondolom, hogy rákeresek és próbálgatok.Most eléggé el vagyok havazva, nem lesz időm vele érdemben foglalkozni.
Bocsánat…
2020-09-13-19:38 #7635Hát, talán ha ezt a Click eseményt hozzáadod a Munka3-hoz:
Private Sub Label1_Click() Munka3.Shapes("Label1").Visible = False Munka3.Shapes("Label1").Visible = True End Sub
Van egy kis villódzás persze, ha bal egérgombbal klikkelsz a képen való mozgatáson + ez nem oldja meg a jobb klikkes problémát (mivel „right click” esemény nincs a Label-nél).
Remélem azért tudtam valamelyest segíteni.
2020-11-14-20:52 #7886Szia XLMotyo!
Köszi a segítséget, használt az ötleted.
2020-11-15-09:49 #7892Örülök, hogy működik 🙂
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.