Telefonszámunk: 1-472-0679

Frissités…

Kezdőlap Fórumok Excel programozás Frissités…

Ennek a témakörnek tartalma 11 hozzászólás, 3 résztvevő. Utolsó frissítés:  Potus 3 hónapja, 1 hét telt el a bejegyzés óta.

12 bejegyzés megtekintése - 1-12 / 12
  • Szerző
    Bejegyzés
  • #5016

    Potus
    Résztvevő

    Sziasztok!
    Van egy munkafűzetem amiben néhany munkalapot időnként frissitene kell. Miközben frissit olyan a képrnyő mintha lefagyna. Mindeféle munkalap töredékek láthatók. Ehelyett nem lehetne valamilyen kóddal kiíratni valami szöveget a frissitéssel kapcsolatban?

    Üdv Potus

    #5020

    Titok
    Résztvevő

    Kapcsold ki a képernyő frissítését:

    Application.ScreenUpdating=False. Frissítés után meg vissza

    #5021

    Potus
    Résztvevő

    Hello!
    Műkődik a dolog, köszi.

    Találtam a neten egy progress bar kodot. Be lehet ezt illeszteni valahová , a frissítésbe, hogy megjelenítse a folyamat haladását. Jól mutatna.

    sub refresh()
    application.screenupdate=falsh
    Thisworkbook.refreshall
    application.screenupdate=true

    hova illesszem be?

    Attachments:
    You must be logged in to view attached files.
    #5023

    delila
    Résztvevő

    Egy példa:

    Sub StatuszSor()
        Dim sor As Integer
        For sor = 1 To 25
            Application.StatusBar = sor & ". sor összege:   " & Cells(sor, 1) + Cells(sor, 2)
            Application.Wait Now + TimeValue("00:00:01")
        Next
        Application.StatusBar = False
    End Sub

    A For i Next i ciklust lezártad, de a For j-t nem.

    #5024

    delila
    Résztvevő

    Egy példa:

    Sub StatuszSor()
        Dim sor As Integer
        For sor = 1 To 25
            Application.StatusBar = sor & ". sor összege:   " & Cells(sor, 1) + Cells(sor, 2)
            Application.Wait Now + TimeValue("00:00:01")
        Next
        Application.StatusBar = False
    End Sub

    A For i Next i ciklust lezártad, de a For j-t nem.

    #5025

    Potus
    Résztvevő

    Hello, Delila!
    Bolyongva a neten ezt találtam Andy Pope-tól: Not sure you can use a progress bar as the Refresh does not yield cpu cycles for your to run code in. What you could do is put a please wait message in the statusbar. (Nem biztos benne, hogy használhatja a folyamatjelző sávot, mivel a Frissítés nem hozza létre a cpu ciklusokat a kód futtatásához. Amit tehetnék, tegyen egy kérem várjon üzenetet az állapotsorban.) Ezek szerint a frissítés alatt nem valószínű, hogy futni fog a progress bar-om. Ha igaz szomorú vagyok 🙁 .
    Viszont nem értem mit csináljak avval amit példaként írtál? Összeadja az 1 és második oszlopot? De melyik sor a statusz sor?
    Elmagyaráznád nekem, nagyon kezdő vagyok még ehhez. Bocsi!

    #5030

    delila
    Résztvevő

    Feltételezem, hogy a formon a zöld csík (Label2) szélességét akarod növelni, és ebbe akarod beíratni az adatok betöltésének pillanatnyi értékét.
    A Label1 és Label2 Left tulajdonságát (bal szélét) azonosra állítottam, a Label2 kiinduló szélessége (width) nulla.
    Lassítani, gyorsítani a Label2 szélességét a For j=1 To … érték módosításával tudod. Nagyobb értéknél lassúbb lesz a folyamat.

    Attachments:
    You must be logged in to view attached files.
    #5032

    Potus
    Résztvevő

    T Ö K É L E T E S !!!!!!!!!!!!! 🙂 Köszönöm!

    #5033

    delila
    Résztvevő

    Egyszerűbben is megoldhatod. Csak egy címke legyen, Label1. Ennek a magassága (Height) 3, szélessége (Width) nulla.

    Private Sub UserForm_Activate()
        For i = 2 To 100 Step 2
            For j = 1 To 1000000: Next
            DoEvents
            UserForm1.Caption = i & "% komplett"
            Label1.Width = i * 2
        Next
    End Sub
    #5038

    Potus
    Résztvevő

    Szia Delila!

    Köszönöm szépen! Alkalmaztam az egyszerűbb verziót.
    Szerintem tetszetős desing elem, de… De nem lehet a design elem voltán túl a valós frissítési folyamathoz kötni? Mint a “valódi” profi programoknál. Vagy ott is tulajdonképpen csak a látványt szolgálja? Vagy rossz helyre szúrtam be?

    Sub refresh()
    Dim screenupdating As Application
    Application.screenupdating = False
    UserForm14.Show
    ThisWorkbook.RefreshAll
    UserForm13.Show
    Application.screenupdating = True
    End Sub

    ( a userform14.show a “Private Sub UserForm_Activate() , a UserForm13.Show pedig egy kép az msgbox helyett a folyamat végét jelzandő ) .

    Még az is – nem nagy , de mégis csak – problémám, hogy hiába kapcsolom ki a képernyő frissítést munkafűzet frissítés közben, időnkét , egyszer – kétszer fehér lesz a képernyő és egy windows media player ikon töredék látszik rajta. Nem lehet ilyenkor helyette valami képet – mellékelem – megjeleníteni helyette?

    #5039

    Potus
    Résztvevő

    erre a képre gondoltam …

    Attachments:
    You must be logged in to view attached files.
    #5041

    Potus
    Résztvevő

    e helyett..

    Attachments:
    You must be logged in to view attached files.
12 bejegyzés megtekintése - 1-12 / 12

Be kell jelentkezni a hozzászóláshoz.