• DİKKAT

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

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.
 
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
 
Yardımcı olduğunuz için teşekkür ederim. Kod çalıştı sağolun.
 
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
 
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.
 
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.
 
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.
 
Kodlardan önce (2. Satır yani)

If Activesheet.name = "TEST" Then

Diğer kodlar

End if

Şeklinde ekleme yaparsanız olur ssanırı.
 
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
 
Geri
Üst