Soru Dolu Hücre(ler) seçilemesin

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
628
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Arkadaşlar,
Aşağıdaki sorunu çözecek bir koda ihtiyacım var.

E8:E28 ve F8:F28 aralıklarına elle değer yazılıyor.
Eğer E ve F sütunlarında değer varsa E sütununa dokunulamasın ve G sütunundaki ilgili satırdaki hücre seçilsin ve MsgBox çıksın.
Dosya üzerinde örnekli açıklama vardır.

Yardımlarınızı rica ederim.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Eğer mesajlar farklı olacaksa.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("E8:F28")) Is Nothing Then
        If Cells(Target.Row, "C") <> "" Then
            Cells(Target.Row, "G").Select
            MsgBox "Bu alana dokunulamaz.", vbCritical, Title:="UYARI"
        ElseIf Cells(Target.Row, "E") <> "" And Cells(Target.Row, "F") <> "" Then
            Cells(Target.Row, "G").Select
            MsgBox "Mesajı buraya yazabilirsiniz."
        End If
    End If
End Sub
Eğer her iki mesaj da aynı olacaksa.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("E8:F28")) Is Nothing Then
        If Cells(Target.Row, "C") <> "" Or Cells(Target.Row, "E") <> "" And Cells(Target.Row, "F") <> "" Then
            Cells(Target.Row, "G").Select
            MsgBox "Bu alana dokunulamaz.", vbCritical, Title:="UYARI"
        End If
    End If
End Sub
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
628
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Muzaffer Ali,
Kodlar için teşekkürler.
İlk kodu kullanacağım.

Şöyle bir sorun var:
ElseIf Cells(Target.Row, "E") <> "" And Cells(Target.Row, "F") <> "" Then
Sorun: Yukarıdaki kod satırındaki durum gerçekleşirse hem E hem de F sütunundaki hücreye dokunmaya izin vermiyor.
Şöyle olmalı: Yukarıdaki kod satırındaki durum gerçekleşirse sadece E sütunundaki hücreyi seçmeye izin vermesin.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Alternatif:
Mevcut kodları;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sat = Target.Row
süt = Target.Column
If sat >= 8 And sat <= 28 And süt = 5 Then
If Cells(sat, 5) <> "" And Cells(sat, 6) <> "" Then
Cells(sat, 7).Select
MsgBox "Bu alana dokunulamaz.", vbCritical, Title:="UYARI"
End If
End If
End Sub

Şeklinde düzenleyerek deneyin.
İyi çalışmalar.
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
628
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
muygun,
Kod için teşekkürler.
Muzaffer Ali'nin 2. iletideki ilk kodunda olduğu gibi iki ayrı msgbox çıkması gerekiyor. Yolladığınız kodla sorun çözülmüyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyin.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("E8:F28")) Is Nothing Then
        If Cells(Target.Row, "C") <> "" Then
            Cells(Target.Row, "G").Select
            MsgBox "Bu alana dokunulamaz.", vbCritical, Title:="UYARI"
        ElseIf Not Intersect(Target, Range("E8:E28")) Is Nothing And Cells(Target.Row, "E") <> "" And Cells(Target.Row, "F") <> "" Then
            Cells(Target.Row, "G").Select
            MsgBox "Mesajı buraya yazabilirsiniz."
        End If
    End If
End Sub
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
628
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Muzaffer Ali,
Son kod işlemi eksiksiz yaptı.
Yardımınız için teşekkürler. Sağ olun.
 
Üst