Telefonszámunk: 1-472-0679

[Resolved] Makró futásakor anomália

Kezdőlap Fórumok Excel programozás [Resolved] Makró futásakor anomália

Topic Resolution: Resolved
16 bejegyzés megtekintése - 1-16 / 16
  • Szerző
    Bejegyzés
  • #7485
    burjanos
    Felhasználó

      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

      #7486
      burjanos
      Felhasználó

        Mivel 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.
        #7488
        burjanos
        Felhasználó

          A 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.
          #7490
          burjanos
          Felhasználó

            Leokézva a MsgBox és végrehajtódik a téglalap elmozgatása

            Attachments:
            You must be logged in to view attached files.
            #7492
            burjanos
            Felhasználó

              A makro, amit írtam

              Attachments:
              You must be logged in to view attached files.
              #7494
              horvimi
              Adminisztrátor

                Szia!

                Zip-et tölts fel, azt engedi.

                Imre

                #7495
                burjanos
                Felhasználó

                  Küldöm zip-ként

                  Attachments:
                  You must be logged in to view attached files.
                  #7497
                  burjanos
                  Felhasználó

                    A Vissza gomb csak annyit csinál, hogy visszaállítja az alaphelyzetet, hogy lehessen a Start-ot újra nyomni.

                    #7498
                    burjanos
                    Felhasználó

                      Szia 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

                      #7502
                      horvimi
                      Adminisztrátor

                        Szia!

                        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

                        #7504
                        burjanos
                        Felhasználó

                          Szia!

                          Köszönöm a segítséget.

                          burjanos

                          #7620
                          burjanos
                          Felhasználó

                            Szia 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.
                            #7622
                            horvimi
                            Adminisztrátor

                              Szia!

                              É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…

                              #7635
                              XLMotyo
                              Felhasználó

                                Há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.

                                #7886
                                burjanos
                                Felhasználó

                                  Szia XLMotyo!

                                  Köszi a segítséget, használt az ötleted.

                                  #7892
                                  XLMotyo
                                  Felhasználó

                                    Örülök, hogy működik 🙂

                                  16 bejegyzés megtekintése - 1-16 / 16
                                  • Be kell jelentkezni a hozzászóláshoz.