Makro bitene kadar msgbox'ta"Lütfen Bekleyiniz..." mesajı

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
Bir excel sayfasında Commandbutton1 ile sorgulama yapıyorum. Sorgulama biraz uzun sürüyor.
Aşağıdaki kodlar il,e Sorgulama bitene kadar ekranda bir "Lütfen bekleyiniz..." yazdırıyorum.
Ancak sadece ekranın sol alt köşesinde yazıyor.
Ben ekranın ortasında, bir msgbox içinde yazdırmak istiyorum.
Nasıl yapabilirim?
Kod:
[B]Private Sub CommandButton1_Click()[/B]

...


[B][COLOR="Red"]Application.DisplayStatusBar = True
Application.StatusBar = "...lütfen biraz bekleyiniz...! "[/COLOR][/B]

[COLOR="Blue"]...Yapılan işlemler........[/COLOR]

[B][COLOR="red"]Application.StatusBar = False
Application.DisplayStatusBar = Application.DisplayStatusBar[/COLOR][/B]


...

[B]End Sub[/B]
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Ekli dosyayı inceleyiniz.:cool:
Selam,
ekli dosyanızı inceledim. Harika bir çalışma olmuş. belki bana kızacaksınız ama beceredim yine.
kodlarım aşağıdaki gibidir. Sizin dosyanızı nasıl uyarlayacağım?

Kodlar Userform üzerinde değil. Bir Excel sayfasındadır. Commandbutton2 sayfa üzerindedir.


Kod:
Private Sub CommandButton2_Click()
If operator.Value = "" And insort.Value = "" And format.Value = "" And ebat.Value = "" And Sayfa.Value = "" _
And Yaprak.Value = "" And gsm.Value = "" Then
'MsgBox "Hiçbir Kriter Seçmediniz! Tüm İnsörtler Görüntülecektir.", vbYesNo, "Sayın  " & Environ("username")

If (MsgBox(" Hiçbir Kriter Seçmediniz! Tüm İnsörtler Görüntülecektir." & vbCrLf & _
Chr(13) & "Devam Etmek İstiyormusunuz ?", vbYesNo + vbInformation, "Sayın  " & Environ("username"))) <> vbYes Then Exit Sub
End If

With Sheets("insörtsorgulama-tekli")

.Range("A2") = operator.Value
.Range("B2") = insort.Value
.Range("C2") = format.Value
.Range("D2") = ebat.Value
.Range("E2") = Sayfa.Value
.Range("F2") = Yaprak.Value
.Range("G2") = gsm.Value

End With

PageSetup.PrintArea = "$A$1:$O$" & [H1] + 7

MsgBox "Sorgu Tamanlandı." & vbCrLf & [H1] & " Adet Sonuç Bulundu.", vbInformation, "Sayın  " & Environ("username")

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Çalışmanıza bir adet UserForm ekleyin ve üzerinede bir adet Label ekleyin. Label nesnesinin Caption kısmına "Lütfen bekleyiniz." yazısını yazın. Yazı boyutunu ve diğer biçimlendirmelerinizi yaptıktan sonra aşağıdaki işlemleri uygulayın.

UserForm nesnesinin kod bölümüne aşağıdaki kodu uygulayın.

Kod:
Option Explicit
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
End Sub

CommanButton2 nesnesindeki kodunuzuda aşağıdaki şekilde değiştirin. Siz çalışmanıza yeni bir form eklediğinizde başka formlarınız varda ismi UserForm1 olmayabilir. Buna göre aşağıdaki koddaki kırmızı bölümleri eklenen form adına göre düzeltmeniz gerekecektir.

Kod:
Option Explicit
 
Private Sub CommandButton2_Click()
    If Operator.Value = "" And insort.Value = "" And Format.Value = "" And ebat.Value = "" And Sayfa.Value = "" _
    And Yaprak.Value = "" And gsm.Value = "" Then
    'MsgBox "Hiçbir Kriter Seçmediniz! Tüm İnsörtler Görüntülecektir.", vbYesNo, "Sayın  " & Environ("username")
 
    If (MsgBox(" Hiçbir Kriter Seçmediniz! Tüm İnsörtler Görüntülecektir." & vbCrLf & _
    Chr(13) & "Devam Etmek İstiyormusunuz ?", vbYesNo + vbInformation, "Sayın  " & Environ("username"))) <> vbYes Then Exit Sub
    End If
 
    [COLOR=red]UserForm1[/COLOR].Show 0
    DoEvents
 
    With Sheets("insörtsorgulama-tekli")
 
    .Range("A2") = Operator.Value
    .Range("B2") = insort.Value
    .Range("C2") = Format.Value
    .Range("D2") = ebat.Value
    .Range("E2") = Sayfa.Value
    .Range("F2") = Yaprak.Value
    .Range("G2") = gsm.Value
 
    End With
 
    PageSetup.PrintArea = "$A$1:$O$" & [H1] + 7
 
    MsgBox "Sorgu Tamanlandı." & vbCrLf & [H1] & " Adet Sonuç Bulundu.", vbInformation, "Sayın  " & Environ("username")
 
    Unload [COLOR=red]UserForm1[/COLOR]
End Sub
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
Korhan Ayhan çok teşekkür ederim. dediğiniz gibi yaptım. Gayet mükemmel oldu.
userform'un kod sayfasına aşağıdaki kodu yazmadım. ama yine gayet istediğim gibi çalıştı. sorgu bitince pencere kapanabiliyor.
Option Explicit

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub
İyi çalışmalar.
 
Üst