Progress Bar Paylaşımı

İlerleme çubuğu

Progress Bar Paylaşımı

İleti#1)  xwyz » 12 Şub 2010 17:52

Arkadaşlar elimde süpersonik bir progress bar mevcut ancak bu progressbar belli bir zaman aralığınca çalışıyor ben istiyorumki işlem bitene kadar çalışsın böyle birşey yapmamız mümkünmü?

Kod: Tümünü seç
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const PI = 2.14159265358979


Kod: Tümünü seç
'/------------------------- PROGRESS BAR ---------------------------/
'/------------------------------------------------------------------/
Sub DemoProgress5()
'
' Progress Application Statusbar
'
    Dim intIndex As Integer
    Dim sngPercent As Single
    Dim intMax As Integer
   
    intMax = 100
    For intIndex = 1 To intMax
        sngPercent = intIndex / intMax
        ProgressStyle7 sngPercent
        DoEvents
        '------------------------
        ' Your code would go here
        '------------------------
        Sleep 50
    Next
Application.StatusBar = False
End Sub

Public Sub ProgressStyle7(Percent As Single)
'
' Progress Style 7
' Application Status bar
' Pulsing
'
    Dim strTemp As String
    Dim intIndex As Integer
    Dim intLen As Integer
   
    intLen = 21
    intIndex = Int((Percent * 100) Mod intLen)
    strTemp = String(intLen, "o")
    If intIndex > 0 Then
        Mid(strTemp, intIndex, 1) = "•"
    End If
    Application.StatusBar = "Yükleniyor " & strTemp
   
End Sub
'/------------------------- PROGRESS BAR ---------------------------/
'/------------------------------------------------------------------/
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
En son xwyz tarafından, 12 Şub 2010 18:02 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
Kullanıcı avatarı
xwyz
Yeni Başlamış
 
Adı Soyadı:Sarp Mutlutürk
Kayıt: 19 Mar 2009 15:55
Konum: Antalya
Meslek: Reporting Expert
Yaş: 32
İleti: 95
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

Cevap: Progress Bar Paylaşımı

İleti#2)  xwyz » 12 Şub 2010 18:01

Dosya eklenmiştir.
Kullanıcı avatarı
xwyz
Yeni Başlamış
 
Adı Soyadı:Sarp Mutlutürk
Kayıt: 19 Mar 2009 15:55
Konum: Antalya
Meslek: Reporting Expert
Yaş: 32
İleti: 95
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

Cevap: Progress Bar Paylaşımı

İleti#3)  Tarkan VURAL » 13 Şub 2010 17:38

Sarp bey,

Yapmak istediğiniz bir işlem varsa ve 10-15 saniye yahut fazlası gibi bir zaman alacaksa bu sistem görsel olarak projeye güzellik katabilir. Kontrolünü yapması çok zor değil. Mesela IntMax değerini işleminizin bitmesini istediğiniz son satırda sabitlersiniz. Sonra döngü içerisinde işlerinizi yaparak aynı zamanda progress' in ilerlemesini sağlayabilirsiniz. Kodlama içeriğinde de zaten amcalar bunu örneklemişler. Örneğin ;

Kod: Tümünü seç
son = range("a65536").end(3).row ' A sütunundaki son dolu hücrenizin sayısını buluyor. Bu sayı ne kadar büyükse o kadar fazla zaman progresi izleyeceksiniz. Dilerseniz direk son = 1500 gibi bir sabit değer verebilirsiniz.
intmax = son
For i = 1 to son
        sngPercent = intIndex / intMax
        ProgressStyle7 sngPercent
        DoEvents
        '------------------------
        ' çalıştıracağınız kodları bu alana yazınız.
        ' örnek
        cells(i,1).value = i * 2
        cells(i,2).value = i * 2 + 16
        cells(i,3).value = cdate(date) + i
        '------------------------
        Sleep 50
next i
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26765
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Progress Bar Paylaşımı

İleti#4)  Tarkan VURAL » 13 Şub 2010 17:40

Bu arada verdiğiniz örnek aslında bir progressbar değil, Application nesnesinin Status özelliğini kullanarak oraya belirli bir zaman aralığında veri gönderip işlem sonunda veriyi sıfırlayan bir kod sistemi. ;)
Örnek paylaşımınız için teşekkür ederim. --)(
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26765
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Progress Bar Paylaşımı

İleti#5)  xwyz » 15 Şub 2010 12:04

Rica ederim ancak " Your code would go here" kısmına kodu ekleyince IntMax değeri kadar makroyu tekrar ediyor. Örneğin bir kopyalama işlemine ekledim, progressin o noktaları her tik ilerleyince tekrar kopyalıyor bir tik ilerliyince tekrar kopyalıyor 100 int 100 kere kopyalıyor, kısacası işlemin tekrarını önlemek mümkünmü veya bundan başka bir yöntemi yokmudur?
Kullanıcı avatarı
xwyz
Yeni Başlamış
 
Adı Soyadı:Sarp Mutlutürk
Kayıt: 19 Mar 2009 15:55
Konum: Antalya
Meslek: Reporting Expert
Yaş: 32
İleti: 95
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

Cevap: Progress Bar Paylaşımı

İleti#6)  Tarkan VURAL » 15 Şub 2010 12:47

Sarp bey, kopyalama dediğiniz işlem bir seferde olacaksa bunun saniye cinsinden karşılığı sanırım en fazla 1 saniye olacak zaten. 1 saniyeliğine progressbar görüntülenmesi mantıklı bir şey olmaz. Elbette For Next döngüsü içinde ne yazarsanız bitime kadar tekrarlanır. Ancak benim eklediğim kodlardaki mantıkta kullandığınızda işleminiz yapılırken progress de adım adım görünür olur. İşlemin en azından 8-10 saniye sürmesi lazım ki progress çalışırken görünsün. Progress amacına uygun kodlamalarda kullanılmalı. Bir satır işlem yapılırken göründüğünü fark etmezsiniz bile.

İsterseniz For i = 1 to 1 yaparak deneyin. ;) Bir sefer çalışsın, kopyalamayı yapacaktır ama progressi göremeyeceksiniz. Çok hızlı bitecek.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26765
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Progress Bar Paylaşımı

İleti#7)  xwyz » 15 Şub 2010 16:18

Bu şekilde yapınca progressbar sabit kalıyor oynama olmuyor, ya neden bunu sorduğumuda söyliyim şimdi yaptığım şey uzun sürüyor yaklaşık 3 dakka civarında ehh ben oraya 3dk ya ayarlarsam olaydan önce biticek veya ileride veriler büyüyünce %100 yazıcak ama işlem hala devam ediyor olcak bu da bir çelişki yaratıcak o yüzden zamanı değilde işlemin durumunu baz almasını istiyordum.
Kullanıcı avatarı
xwyz
Yeni Başlamış
 
Adı Soyadı:Sarp Mutlutürk
Kayıt: 19 Mar 2009 15:55
Konum: Antalya
Meslek: Reporting Expert
Yaş: 32
İleti: 95
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

Cevap: Progress Bar Paylaşımı

İleti#8)  Tarkan VURAL » 15 Şub 2010 16:29

xwyz yazdı:şimdi yaptığım şey uzun sürüyor yaklaşık 3 dakka civarında


Yaptığınız işlem nedir ?
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26765
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Progress Bar Paylaşımı

İleti#9)  xwyz » 15 Şub 2010 18:00

Yaptığım işlem sizin şu http://www.excelvba.net/viewtopic.php?f=4&t=5047 adresteki makronun 20.000+ hücreye uyarlanmış hali doğal olarak bir tıkladığımda excel kilitlenir gibi bekliyor veya uzun sürüyor.
Kullanıcı avatarı
xwyz
Yeni Başlamış
 
Adı Soyadı:Sarp Mutlutürk
Kayıt: 19 Mar 2009 15:55
Konum: Antalya
Meslek: Reporting Expert
Yaş: 32
İleti: 95
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul


Forum ProgressBar

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe