• DİKKAT

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

Eğer "Evet" yazıyorsa hücreye veri girdirme

ozgurpeh

Altın Üye
Katılım
30 Eylül 2007
Mesajlar
383
Excel Vers. ve Dili
2010 Türkçe
Sayfa1 için A2 hücresine veri girilirken c3 ücresinde evet yazıyorsa veri girişine izin versin fakat C3 hücresinde hayır yazıyorsa bu alana veri giremezsin uyarısı verdirmek istiyorum. Bununla ilgili nasıl bir makro yazılması gerekir yardımcı olabilirmisiniz ?
 
Aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp Kod görüntüle deyince açılan sayfaya) yapıştırırsanız C3 hücresinde Evet yazmadıkça A2 hücresini seçmenize izin vermez, dolayısıyla veri giremezsiniz:

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [A2]) Is Nothing Then Exit Sub
If WorksheetFunction.Proper([C3]) <> "Evet" Then
    MsgBox "Bu hücreye veri girebilmek için C3 hücresinde Evet yazmalıdır!", vbCritical
    [C3].Select
End If
End Sub
 
Aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp Kod görüntüle deyince açılan sayfaya) yapıştırırsanız C3 hücresinde Evet yazmadıkça A2 hücresini seçmenize izin vermez, dolayısıyla veri giremezsiniz:

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [A2]) Is Nothing Then Exit Sub
If WorksheetFunction.Proper([C3]) <> "Evet" Then
    MsgBox "Bu hücreye veri girebilmek için C3 hücresinde Evet yazmalıdır!", vbCritical
    [C3].Select
End If
End Sub

Dönüşünüz için teşekkür ederim. Peki bunu 3 farklı hücreye naıl uygularız aynı sayfa için;

yani C3 evet yazmadıkça A2 hücresini seçemiyor bu ok c4 te evet yazmadıkçada a3 ve a5 ide seçmesini istiyorum, alt alta 3 tane aynı formulü kopyaladım hata verdi
 
Aşağıdaki gibi olabilir:

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [A2]) Is Nothing Then GoTo 10
If WorksheetFunction.Proper([C3]) <> "Evet" Then
    MsgBox "Bu hücreye veri girebilmek için C3 hücresinde Evet yazmalıdır!", vbCritical
    [C3].Select
End If
10:
If Intersect(Target, [A3,A5]) Is Nothing Then Exit Sub
If WorksheetFunction.Proper([C4]) <> "Evet" Then
    MsgBox "Bu hücreye veri girebilmek için C4 hücresinde Evet yazmalıdır!", vbCritical
    [C4].Select
End If
End Sub
 
Evet ve hayır dışında bir şey yazılırsa ne olacak onu yazmamışsınız.:cool:
 
Evet ve hayır dışında bir şey yazılırsa ne olacak onu yazmamışsınız.:cool:

aslında #YUSUF44 ün çözümü işimi görüyor hayırsa giremiyorsun evetse girebiliyorsun fakat şöyle bir hata çıktı kopyalarken falan hata veriyor yani hücre hayırsa o hücreye hiçbir işlem yaptırmıyor
 
Alternatif;

Örnek dosyayı deneyiniz. Veri doğrulama uygulanmıştır.
 

Ekli dosyalar

Aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp Kod görüntüle deyince açılan sayfaya) yapıştırırsanız C3 hücresinde Evet yazmadıkça A2 hücresini seçmenize izin vermez, dolayısıyla veri giremezsiniz:

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [A2]) Is Nothing Then Exit Sub
If WorksheetFunction.Proper([C3]) <> "Evet" Then
    MsgBox "Bu hücreye veri girebilmek için C3 hücresinde Evet yazmalıdır!", vbCritical
    [C3].Select
End If
End Sub
Hedef Hücre a2 ye girdikten sonra aşagıdaki satıra atlıyor.Açıklar mısnız
If WorksheetFunction.Proper([C3]) <> "Evet" Then kısmı ne demek açıklar mısınız?
 
If WorksheetFunction.Proper([C3]) <> "Evet" Then kısmı C3 hücresinde yazan yazıya YAZIM.DÜZENİ formülünü uyguluyor, ilk harfini büyük diğerlerini küçük yapıyor. Eğer C3 hücresinde Evet'ten farklı şekilde veri varsa (EVET gibi) karşılaştırmada sıkıntı çıkmamasını sağlıyor.

"Hedef hücre A2'ye girdikten sonra aşağıdaki satıra atlıyor" kısmından ne kastettiğinizi anlamadım maalesef.
 
Geri
Üst