• DİKKAT

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

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
 
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
 
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
 
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
 
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
 
Geri
Üst