Messagebox OK göstermeme

Katılım
30 Nisan 2019
Mesajlar
3
Excel Vers. ve Dili
ingilizce
Merhaba Arkadaşlar,
Sorum şu normalde bunu nasıl yapacağımı biliyorum ama ben Messagebox'u 2'sn ekranda tuttuktan sonra otomatik kapatma uyguladım ve sorunsuz çalışıyor.
Ama Ben Şunu Kullandım;
If MesajGoster = "Start Macro" Then
MesajIcerik = "Makro başlatıldı." & vbNewLine & vbLf & "2 Saniye sonra otomatik kapanacaktır.": MesajBaslik = "Makro İşlemi"
Call CustomTimeOffMsgBox(0, MesajIcerik, MesajBaslik, vbInformation, 0, 2000)
MesajGoster = ""
End If

Yani Button Name "Start Macro" ise devreye giriyor ve işlemi yapıyor. otomatik kapanacağı için Messagebox'ın altında OK yazısını istemiyorum
Bu konuda bana yardımcı olabilecek arkadaş varsa sevinirim.
Kolay Gelsin

CustomTimeOffMsgBox Kullanan vardır diye düşünüyorum
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,407
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
UserForm ile Butonsuz Otomatik Kapanan Mesaj

Bu yöntem, senin istediğin gibi bir “bilgi mesajı” oluşturur; hiçbir buton içermez, 2 saniye sonra kendiliğinden kapanır.
🔧 Adımlar:

  1. VBA’da bir UserForm ekle (örneğin adı frmMesaj olsun).
  2. İçine bir Label (Label1) ekle ve genişliğini mesajın sığacağı kadar yap.
  3. Aşağıdaki kodu forma yapıştır:


Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("0:00:02"))
Unload Me
End Sub



Şu kodla bu formu istediğin yerden çağırabilirsiniz


Sub ButonsuzMesaj()
With frmMesaj
.Label1.Caption = "Makro başlatıldı." & vbCrLf & "2 saniye sonra otomatik kapanacaktır."
.Caption = "Makro İşlemi"
.Show vbModeless 'Modeless => kullanıcıyı kilitlemez
End With
End Sub

Böylece sadece bilgi amaçlı bir pencere çıkar, kullanıcı hiçbir şey tıklamaz, 2 saniye sonra kendi kapanır.
 
Katılım
30 Nisan 2019
Mesajlar
3
Excel Vers. ve Dili
ingilizce
Teşekkürler ama ben zaten bunu yaptığımı söylemiştim. 2sn sonra zaten kapanıyor. benim istediğim mesaagebox geldiği zaman altında OK yazmaması. Yine de teşekkürler
 
Katılım
30 Nisan 2019
Mesajlar
3
Excel Vers. ve Dili
ingilizce
UserForm ile Butonsuz Otomatik Kapanan Mesaj

Bu yöntem, senin istediğin gibi bir “bilgi mesajı” oluşturur; hiçbir buton içermez, 2 saniye sonra kendiliğinden kapanır.
🔧 Adımlar:

  1. VBA’da bir UserForm ekle (örneğin adı frmMesaj olsun).
  2. İçine bir Label (Label1) ekle ve genişliğini mesajın sığacağı kadar yap.
  3. Aşağıdaki kodu forma yapıştır:


Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("0:00:02"))
Unload Me
End Sub



Şu kodla bu formu istediğin yerden çağırabilirsiniz


Sub ButonsuzMesaj()
With frmMesaj
.Label1.Caption = "Makro başlatıldı." & vbCrLf & "2 saniye sonra otomatik kapanacaktır."
.Caption = "Makro İşlemi"
.Show vbModeless 'Modeless => kullanıcıyı kilitlemez
End With
End Sub

Böylece sadece bilgi amaçlı bir pencere çıkar, kullanıcı hiçbir şey tıklamaz, 2 saniye sonra kendi kapanır.
Teşekkürler ama ben zaten bunu yaptığımı söylemiştim. 2sn sonra zaten kapanıyor. benim istediğim mesaagebox geldiği zaman altında OK yazmaması. Yine de teşekkürler
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
805
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Teşekkürler ama ben zaten bunu yaptığımı söylemiştim. 2sn sonra zaten kapanıyor. benim istediğim mesaagebox geldiği zaman altında OK yazmaması. Yine de teşekkürler
hocam siz msg box ile yapmışssınız. 2 nolu mesajda arkadaşın önerdiği yöntem msg box ile değil. userform ile yapılması. userform ile yaparsanız ekrana msgbox gibi bir pencere gelir. bu pencerede ok yazmaz zaten 2sn sonra pencere kapansın dersiniz. resimdeki örnek gibi259525
 
Katılım
20 Ekim 2005
Mesajlar
499
s.a.

Excel VBA'da butonsuz bir MsgBox (ileti kutusu) oluşturulabilir, ancak doğrudan standart MsgBox fonksiyonu ile butonsuz bir ileti kutusu yapmak mümkün değildir, çünkü MsgBox varsayılan olarak en az bir düğme (genellikle "Tamam") içerir.

Windows API ile tamamen butonsuz bir mesaj kutusu oluşturabilirsiniz, ancak bu daha karmaşıktır ve platforma özgüdür. MessageBoxTimeout gibi bir API fonksiyonu kullanarak belirli bir süre sonra otomatik kapanan bir mesaj kutusu yapabilirsiniz.

Kod:
Declare PtrSafe Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" ( _

    ByVal hwnd As LongPtr, _

    ByVal lpText As String, _

    ByVal lpCaption As String, _

    ByVal uType As Long, _

    ByVal wLanguageId As Long, _

    ByVal dwMilliseconds As Long) As Long

Sub ShowTimedMessageBox()

    MessageBoxTimeout 0, "Bu bir butonsuz mesaj kutusu!", "Bilgi", 0, 0, 2000 ' 2 saniye

End Sub
 
Üst