VBA Msgbox’dan alınan cevaba göre işlem yaptırma


Vba Msgbox ile ilgili temel bilgileri, Msgbox oluşturmayı, syntax kurallarını VBA MsgBox/Mesaj Kutusu konusunda görmüştük. Bu konuda Msgbox’da kullanıcının verdiği cevaplar doğrultusunda çeşitli işlemler nasıl yaptırılır konusu üzerinde duracağız.

Msgbox üzerinde 7 çeşit cevap button’u vardır ve her bir button kendi index değerine sahiptir. Yani yes, no, ok vb gibi cevaplara basıldığında her biri farklı bir integer değeri döndürür, bu değere göre hangi cevaba basıldığını anlayabiliriz.

Değer Basılan Button/Düğme
1 OK Düğmesine basılırsa dönecek değer.
2 Cancel Düğmesine basılırsa dönecek değer.
3 Abort Düğmesine basılırsa dönecek değer.
4 Retry Düğmesine basılırsa dönecek değer.
5 Ignore Düğmesine basılırsa dönecek değer.
6 Yes Düğmesine basılırsa dönecek değer.
7 No Düğmesine basılırsa dönecek değer.

örnek 1:Hangi Düğme’ye (Button) Basıldı?


Sub msj()

Dim mesaj As String

Dim cevap As Integer 

mesaj = "Hangi Dügme'ye (Button) Basildi"

cevap = MsgBox(mesaj, vbYesNoCancel + vbQuestion) 'cevap değeri basılan button'un yukarıdaki tablodaki index değerini döndürecek.

MsgBox cevap 'yeni bir Msgbox üzerinde bu index degerini dolayısıyla basılan button'u görebileceğiz.

End Sub

msgbox1.Yes’e basalım:

msgbox2

2.No‘ya basalım:

 msgbox3

3.Cancel‘a basalım:

 msgbox4

örnek 2:Basılan Düğme’ye (Button) göre işlem yaptıralım:


Sub msj()

Dim mesaj As String

Dim cevap As Integer

mesaj = "Hucreye Microsoft Excel yazilsin mi?"

cevap = MsgBox(mesaj, vbYesNoCancel + vbQuestion)

Select Case cevap

Case 6

Range("A1").Value = "Microsoft Excel"

Case 7

MsgBox "No'ya basildi,herhangi bir islem yapilmadi"

Case 2

MsgBox "islem iptal edildi"

End Select

End Sub

msgbox2

1.Yes’e basalım: msgbox32.No‘ya basalım:

msgbox4

3.Cancel‘a basalım: msgbox5

örnek 3: Index numaralarını kullanmadan cevaba göre işlem yapalım:

Sayfa içeriğini temizlemek isteyip istemediğini kullanıcıya soralım “ok” cevabı verirse içerik temizlensin.

msgbox7


Sub msj()

Dim mesaj As String

Dim cevap As Integer

mesaj = "Sayfa Temizlensin mi"

cevap = MsgBox(mesaj, vbOKCancel)

If cevap = vbOK Then

Cells.Select

Selection.ClearContents

End If

End Sub

 

1.Kodu çalıştıralım.msgbox8

2.Ok’e basalım içerik temizlendi. Cancel’a bassaydık herhangi bir işlem yapılmayacaktı.

msgbox9

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s