MsgBox vbYesNo süreli yapmak

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhabalar

Msgbox vbyesno da belirli bir süre konup süre bitiminde otomatikman yes veya no ile devam etmesi sağlanabilir mi?

Ayrıca bu yolla makrodan çıkışta debugla çıkmak (değerleri kontrol etmek için) mümkün müdür?

Kod:
Sub saniye3_MsgBox1()
CreateObject("WScript.Shell").Popup "Merhaba.", 3, "Bu mesaj kutusu 3 saniye içinde kapanacak."
End Sub
Sub msgbox_anlamak2()
If MsgBox("İşleminizi onaylıyor musunuz ?", vbYesNo, "Msgbbox_anlamak1") = vbYes Then
MsgBox "İşlem tamamlanmıştır.", vbInformation, "Msgbbox_anlamak2"
'Evet kodları burada olacak

Else
MsgBox "İşlem iptal edilmiştir.", vbInformation, "Msgbbox_anlamak3"
'Hayır kodları burada olacak
End If
End Sub
Kendim süreyi eklemeyi başardım.Debug kısmını yapamadım.
Mesela vbyesno nun yanına 3. bir düğme konup olduğu yerden debugla çıkması sağlanabilir mi?
Kod:
Sub msgbox_anlamak2()
If CreateObject("WScript.Shell").Popup("İşleminizi onaylıyor musunuz ?" & vbCrLf & "Bu mesaj kutusu 5 saniye içinde kapanacak ve programdan hayırla çıkılacak." & vbCrLf & "Evete basarsanız devam edebilirsiniz.", 5, , vbYesNo) = vbYes Then

'If MsgBox("İşleminizi onaylıyor musunuz ?", vbYesNo, "Msgbbox_anlamak1") = vbYes Then
MsgBox "İşlem tamamlanmıştır.", vbInformation, "Msgbbox_anlamak2"
'Evet kodları burada olacak

Else
MsgBox "İşlem iptal edilmiştir.", vbInformation, "Msgbbox_anlamak3"
'Hayır kodları burada olacak
End If
End Sub

Birde aşağıdaki linkte msgbox boyutunu büyütmeyi göstermişler.
Kodları ben çalıştıramadım, değerlendirebilir misiniz?

http://www.automationrepository.com/2011/09/msgbox-ran-out-of-space-try-dotnetfactory-messagebox-instead/
 
Son düzenleme:

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Değilse kısmına;
Kod:
[FONT="Trebuchet MS"][COLOR="Red"][B]SendKeys "%{F11}"[/B][/COLOR][/FONT]
yazın olmaz mı ?
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Kodların sonuna hata verecek herhangi bir kod yazmayı deneyin.
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Murat bey denedim olmadı.
Çözümü vbyesnocancel da olacağını düşünüyorum.Burda 3 butonunda gittiği yolları ayırmayı denedim olmadı.Yada böyle birşey mümkün mü?
Kod:
Sub msgbox_anlamak2()
If CreateObject("WScript.Shell").Popup("İşleminizi onaylıyor musunuz ?" & vbCrLf & "Bu mesaj kutusu 5 saniye içinde kapanacak ve programdan hayırla çıkılacak." & vbCrLf & "Evete basarsanız devam edebilirsiniz.", 5, , vbYesNoCancel) = vbYes Then
Cells(2, "a") = Format(Now, "dd.MM.yyyy HH:mm:ss") 'YES=EVET
MsgBox "İşlem tamamlanmıştır.YES", vbInformation, "Msgbbox_anlamak2 YES"

Else: If vbYesNoCancel = vbNo Then Cells(2, "b") = Format(Now, "dd.MM.yyyy HH:mm:ss") 'NO=HAYIR
MsgBox "İşlem iptal edilmiştir.HAYIR", vbInformation, "Msgbbox_anlamak3 HAYIR"
End If
Else: If vbYesNoCancel = vbNo Then Cells(2, "c") = Format(Now, "dd.MM.yyyy HH:mm:ss") 'CANCEL = İPTAL
MsgBox "İşlem iptal edilmiştir.CANCEL", vbInformation, "Msgbbox_anlamak3 CANCEL"

End If
End If
Cells(2, "d") = Format(Now, "dd.MM.yyyy HH:mm:ss") 'ÇIKIŞ
MsgBox "İşlem iptal edilmiştir.ÇIKIŞ", vbInformation, "Msgbbox_anlamak4 ÇIKIŞ"
End Sub

Başka bir sitede bulduğum kod istediğim mantıkla çalışıyor ama bunda da süreyi eklemek mümkün olmadı.Yukarıdaki kodu buna göre düzenlene bile güzel olacak.
Kod:
Sub SELECTCASEMSG()
Select Case MsgBox("my question?", vbYesNoCancel)
 Case Is = vbYes
 MsgBox "İşlem EVET", vbInformation, "Msgbbox_EVET" 'YES=EVET
 Case Is = vbNo
 MsgBox "İşlem HAYIR", vbInformation, "Msgbbox_HAYIR" 'NO=HAYIR
 Case Is = vbCancel
 MsgBox "İşlem CANCEL", vbInformation, "Msgbbox_CANCEL" 'CANCEL=İPTAL
 Case Else
 [COLOR="Red"]Debug.Print "Whoops"[/COLOR]'Bu bölüm ne zaman çalışıyor anlayamadım
 End Select
 MsgBox "İşlem iptal edilmiştir.", vbInformation, "Msgbbox_ÇIKIŞ" 'ÇIKIŞ
End Sub
 
Son düzenleme:
Katılım
23 Nisan 2011
Mesajlar
283
Excel Vers. ve Dili
Excel 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
02.01.2019
Merhaba
Denedim ama olmadı.
Merhaba, konuyu tam anlamış değilim ama Sendkeys"%{F11}" bende de sorun çıkarıyordu ve zamanında sorduğumda Sn. halit3'ün şöyle bir alternatifiyle sorunumu halletmiştim.

Kod:
Application.VBE.MainWindow.Visible=True
Belki işinizi görür.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Yapmak istediğinizi, amacınızı tam olarak en sade ve net bir biçimde söyler misiniz ?
 
E

ExcelF1

Misafir
Alternatif olması açısından belirteyim. Düşündünüz mü bilemem ama,

Neden msgbox ile uğraşıyorsunuz ? Kendi mesaj kutunuzu kendiniz yapın ve istediğiniz tüm butonları üzerine ekleyin.

Yani 1 Userform oluşturun ve kodları onun üzerine yazın.
 
Katılım
23 Nisan 2011
Mesajlar
283
Excel Vers. ve Dili
Excel 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
02.01.2019
Merhaba, Sn. Murat Osma'nın ve Sn. ExcelF1'in affına sığınarak aşağıdaki makroyu ekledim.
Fakat ben de userform ile daha esnek çözümler üretilebileceğini düşünüyorum.

Kod:
Private Sub CommandButton1_Click()

If CreateObject("WScript.Shell").Popup("İşleminizi onaylıyor musunuz ?" & _
vbCrLf & "Bu mesaj kutusu 5 saniye içinde kapanacak ve programdan hayırla çıkılacak." & vbCrLf & _
"Evete basarsanız devam edebilirsiniz.", 5, , vbYesNoCancel) = vbYes Then
    
    Cells(2, "a") = Format(Now, "dd.MM.yyyy HH:mm:ss")

Else
    Select Case MsgBox("my question?", vbYesNoCancel)
        Case Is = vbYes
            MsgBox "İşlem EVET", vbInformation, "Msgbbox_EVET" 'YES=EVET
        Case Is = vbNo
            MsgBox "İşlem HAYIR", vbInformation, "Msgbbox_HAYIR" 'NO=HAYIR
        Case Is = vbCancel
            MsgBox "İşlem CANCEL", vbInformation, "Msgbbox_CANCEL" 'CANCEL=İPTAL
        Case Else
            Debug.Print "Whoops"
        End Select
    
    MsgBox "İşlem iptal edilmiştir.ÇIKIŞ", vbInformation, "Msgbbox_anlamak4 ÇIKIŞ"
End If

End Sub
 
Üst