Hücre Boşsa Uyar Doluysa Makro Çalıştır

Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Arkadaşlar merhabalar,
TEST_KAYIT adında bir makrom var ve bu makronun çalışabilmesi için B3,M3,Q3,R3 gibi bazı hücrelerin dolu olup olmadığını kontrol etmem gerekiyor. B3 Tarih, M3 Saat, Q3 sayı, R3 açıklama hücrelerini kontrol etsin.

örneğin b3 boşsa Tarih giriniz m3 boşsa saat giriniz şeklinde uyarsın. Eğer tüm hücreler doluysa TEST_KAYIT makrosu çalışsın. Bununla ilgili bir kaç makro denemesi yaptım ama acemi olduğumdan sonuca ulaşamadım. Eğer sakıncası yoksa yardımcı olursanız sevinirim.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Aşağıdaki gibi deneyiniz.
Kod:
 Sub TEST_KAYIT()
Dim x1, x2 As Variant
x1 = Array("B3", "M3", "Q3", "R3")
x2 = Array("Tarih", "Saat", "Sayı", "Açıklama")
For bak = 0 To UBound(x1)
If Range(x1(bak)) = "" Then
MsgBox x2(bak) & " GİRİNİZ"
Exit Sub
End If
Next

'Kodlarınız....


End Sub
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Yardımcı olduğunuz için teşekkür ederim. Kod çalıştı sağolun.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ben de akşam cepten bakmış ve aşağıdaki kodları hazırlamıştım ama deneme imkanım olmadığı için göndermemiştim. Alternatif olsun:

Kod:
Sub kontrol()

If [B3] = "" Then
MsgBox ("Lütfen TARİH giriniz")
[B3].Select
Else
If [M3] = "" Then
MsgBox ("Lütfen SAAT giriniz")
[M3].Select
Else
If [Q3] = "" Then
MsgBox ("Lütfen SAYI giriniz")
[Q3].Select
Else
If [R3] = "" Then
MsgBox ("Lütfen AÇIKLAMA giriniz")
[R3].Select
Else
[D5] = "Tüm bilgiler girilmiş"
End If
End If
End If
End If
End Sub

Sayın PLINT'e de dizilerle ilgili güzel örneği için teşekkür ederim. UBound'un anlamını açıklarsa sevinirim. Ayrıca o kodları aşağıdaki gibi kullanırsanız boş olan hücreyi seçer:

Kod:
If Range(x1(bak)) = "" Then
MsgBox x2(bak) & " GİRİNİZ"
[B]Range(x1(bak)).Select[/B]
Exit Sub
End If
Next

'Kodlarınız....

End Sub
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,633
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Yusuf bey merhaba,

Ubound ile dizideki eleman sayısını bulabilirsiniz. Diziler 0'dan başladığı için Modülün başına Option Base 1 yazarsanız tam sonucu alabilirsiniz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yusuf bey merhaba,

Ubound ile dizideki eleman sayısını bulabilirsiniz. Diziler 0'dan başladığı için Modülün başına Option Base 1 yazarsanız tam sonucu alabilirsiniz.
Teşekkürler sayın kuvari. Bu kodda ubound 4 sonucunu veriyor öyleyse. Daha doğrusu dizinin son elemanının sıra numarası olan 3 veriyor ve for döngüsünü 0'dan başlattığımız için 4'e kadar döndür anlamına geliyor.
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhaba
Aşağıdaki gibi deneyiniz.
Kod:
 Sub TEST_KAYIT()
Dim x1, x2 As Variant
x1 = Array("B3", "M3", "Q3", "R3")
x2 = Array("Tarih", "Saat", "Sayı", "Açıklama")
For bak = 0 To UBound(x1)
If Range(x1(bak)) = "" Then
MsgBox x2(bak) & " GİRİNİZ"
Exit Sub
End If
Next

'Kodlarınız....


End Sub
gerçekten çok sağolun ellerinize sağlık hepinizin. Son 1 sorum daha olacak yukarıda ki kodda sayfa adını nasıl belirtebiliriz. Yani sayfa adı TEST ise kontrol etsin istiyorum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodlardan önce (2. Satır yani)

If Activesheet.name = "TEST" Then

Diğer kodlar

End if

Şeklinde ekleme yaparsanız olur ssanırı.
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Çok teşekkürler elinize emeğinize sağlık
 
Katılım
30 Haziran 2022
Mesajlar
48
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
28-07-2023
Konunun üzerinden uzun zaman geçmiş ama aşağıdaki kodlar üzerinden eğer hücre doluysa makro çalışmasın, hücre boşsa makro çalışsın nasıl yapabiliriz?

Sub kontrol()

If [B3] = "" Then
MsgBox ("Lütfen TARİH giriniz")
[B3].Select
Else
If [M3] = "" Then
MsgBox ("Lütfen SAAT giriniz")
[M3].Select
Else
If [Q3] = "" Then
MsgBox ("Lütfen SAYI giriniz")
[Q3].Select
Else
If [R3] = "" Then
MsgBox ("Lütfen AÇIKLAMA giriniz")
[R3].Select
Else
[D5] = "Tüm bilgiler girilmiş"
End If
End If
End If
End If
End Sub
 
Üst