• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Ekranda kalan MsgBox

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,468
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Arkadaşlar, sayın hocalarım, şöyle bir kod kullanıyorum,

Sub rapor()
'MsgBox "Lütfen bekleyin raporlar dönüştürülüyor.", vbInformation
'Böyle koysam, TAMAM tıklamam gerekiyor. Diğer MsgBox'a gelene kadar ekranda kalacak. Yani Tamam yazısı olmayacak. Makroyu çalıştıracak. MsgBox gelince MsgBox çalışacak. Mümkün mü?
Call aaa
Cal bbb
Call ccc
'Böyle baya var
MsgBox "Tüm Excel raporlar PDF formatında kaydedildi.", vbInformation
End Sub

Şimdiden teşekkür ederim.
Saygılarımla.
 
Son düzenleme:
Siz altın üyesiniz. Forum linkinden indirebilirsiniz. Harici linkler 1 hafta içinde ölüyor..
 
Siz altın üyesiniz. Forum linkinden indirebilirsiniz. Harici linkler 1 hafta içinde ölüyor..
Hocam o gözümden kaçmış pardon.
Hocam tam anlamadım kusura bakmayın.

Ben kodlarımı şu araya mı yazacağım?

Private Sub UserForm_Activate()
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dim X As Long, Son As Long
Son = 10000
For X = 1 To Son
DoEvents
Cells(1, 1) = X
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Me.Label2.Caption = Format(X / Son * 100, "% 0.00")
Next
Application.Wait Now + TimeSerial(0, 0, 2)
Unload UserForm1
End Sub
 
Evet..

Ama Label2 size doğru yüzdesel değeri vermeyecektir. Dilerseniz onu silebilirsiniz.
 
Evet..

Ama Label2 size doğru yüzdesel değeri vermeyecektir. Dilerseniz onu silebilirsiniz.
Kod:
Sub renk()

UserForm1.Show 0 'Bekle ekranı çalıştır

    Range("D1").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
MsgBox "İşlem tamamlandı"

End Sub

Hocam bu şekilde düşündüm ama UserForm kapanmıyor.
 
Tam olarak ne yaptığınızı bilemiyorum. Benim paylaştığım kod örnek bir kodlamaydı. Kendi dosyanıza uyarlamanız gerekir.

MsgBox satırından önce olacak şekilde aşağıdaki satırı ekleipy deneyebilirsiniz.

Unload UserForm1
 
Tam olarak ne yaptığınızı bilemiyorum. Benim paylaştığım kod örnek bir kodlamaydı. Kendi dosyanıza uyarlamanız gerekir.

MsgBox satırından önce olacak şekilde aşağıdaki satırı ekleipy deneyebilirsiniz.

Unload UserForm1
Hocam benimki sanırım biraz mantık hatası oldu. Aynı anda iki makronun da çalışması lazım.
Hocam başka şekilde çözmeye çalışacağım. Belki sadece bir UserForm yapıp. "Lütfen bekleyin, işleminiz gerçekleştiriliyor" yazacak, o kadar.
Ama UserForm açık kalırken benim kodlar çalışacak mı?
Sonra kapanacak.
Şöyle bir şey hocam.
 

Ekli dosyalar

Kod:
Sub UzunSurenIslem()
    ' 1. Bekleyiniz formunu aç
    UserForm2.Show vbModeless    ' Userform2'ye "İşlemleriniz bitene kadar Lütfen bekleyiniz yazısı yazınız"
  
    ' Formun ekrana hemen hazırlanması için Refresh(tazeleme-yineleme) yapalım
    UserForm2.Repaint
    DoEvents ' Sistemin formu işlemesine izin ver
  
    ' --- ASIL İŞLEMİNİZ BURADA BAŞLAR ---
    ' Örnek olarak bir döngü işlemi var sayıyorum:
    Dim i As Long
    For i = 1 To 1000000
        ' İşlemleriniz...
        ' Not: Çok uzun döngülerde arada bir DoEvents kullanmak
        ' bekleme formunun donmasını engeller.
    Next i
    ' --- ASIL İŞLEMİNİZ BURADA BİTER ---
  
    ' 2. İşlem bittiğinde formu kapat
    Unload UserForm2
  
    MsgBox "İşlem başarıyla tamamlandı!", vbInformation
End Sub
 
Kod:
Sub UzunSurenIslem()
    ' 1. Bekleyiniz formunu aç
    UserForm2.Show vbModeless    ' Userform2'ye "İşlemleriniz bitene kadar Lütfen bekleyiniz yazısı yazınız"
 
    ' Formun ekrana hemen hazırlanması için Refresh(tazeleme-yineleme) yapalım
    UserForm2.Repaint
    DoEvents ' Sistemin formu işlemesine izin ver
 
    ' --- ASIL İŞLEMİNİZ BURADA BAŞLAR ---
    ' Örnek olarak bir döngü işlemi var sayıyorum:
    Dim i As Long
    For i = 1 To 1000000
        ' İşlemleriniz...
        ' Not: Çok uzun döngülerde arada bir DoEvents kullanmak
        ' bekleme formunun donmasını engeller.
    Next i
    ' --- ASIL İŞLEMİNİZ BURADA BİTER ---
 
    ' 2. İşlem bittiğinde formu kapat
    Unload UserForm2
 
    MsgBox "İşlem başarıyla tamamlandı!", vbInformation
End Sub
Teşekkür ederim hocam. Emeğinize sağlık. İşe yaradı. Sağ olun. Var olun.
 
Böyle olabilir..
Hocam, emeğinize sağlık demiştim. Var olun. Dosyaların tamamını ekledim.
Arada excel dosyaları üste çıkıyor. Bunu soru olarak sordum zaten. UserForm sürekli üstte durabilme olanağı var mı diye.
Bir de hocam. Kesinlikle elzem değil. Sadece görüntü açısından. Lütfen mazur görün.
MsgBox olmasa da. MsgBox yerine "Lütfen bekleyiniz" yazısı "İşleminiz tamamlanmıştır" yazısına dönüşse ve UserForm 3 saniye sonra kaybolsa.
Hocam vaktiniz olursa. Sadece görüntü olarak düşündüm.
Saygılarımla.
 
Faydalı olabilir..

UserForm Penceresini En Üstte Sabitleme | Excel Web Tr | Excel, Makro, VBA, Formüller ve Raporlama https://share.google/5FVWdOSnpHtBLfy5I

formu bir süre sonra otomatik kapatma (?) | Excel Web Tr | Excel, Makro, VBA, Formüller ve Raporlama https://share.google/GmmGhkH58vAdY3qmR
Hocam kapanma tamam, sağ olun ama üstte olması olmadı. 32 bit'ten 64 bit'e çevirdim. Yine de olmadı. Oradaki forumda soran da faydalanamamış. Vaktinizi aldım hocam. Teşekkür ederim.
 
Geri
Üst