• DİKKAT

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

Hücre Koşullu Seçilemesin

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba Arkadaşlar,

Sayfa altında (Private Sub Worksheet_Change(ByVal Target As Range)) veya modül olarak kod yardımıyla şöyle bir şey yapılabilir mi ?

Diyelim ki B sütununda veri var. o zaman aynı satırda C sütunundaki hücre seçilemesin. B dolu iken C ye veri girilebilmesi için önce B deki verinin silinmesi gereksin gibi bir şey. Örnek dosya linki : http://s3.dosya.tc/server18/yw4jcd/HUCRE_KOSULLU_SECILMESIN__EXCEL_WEB_TR_.xls.html
 
Örnek çözüm olarak,
Dökümanınızdaki C2:C6 aralığını seçerek a ad tanımlaması yapılırsa

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a]) Is Nothing Then Exit Sub
If Target.Offset(0, -1) <> "" Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Aynı satırın B kolonunda değer varken bu hücreye veri girişi yapılamaz"
End If
End Sub

kodları ile C2:C6 aralığına (B deki karşılığında veri varken) veri girişi yapıldığında, veri girişi iptal edilir. Silinmek istenirse de önce B deki değer silinmesi gerekir.
 
Aynı sayfada çift kontrol yaptırılması mümkün mü ? yani şöyle;
** B de veri varken C ye girişi iptal etsin
** C de veri varken B ye girişi iptal etsin gibi.
 
Alternatif;

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo 10
    If Target.Column = 3 Then
        If Target.Offset(0, -1) <> "" Then
            Target.Offset(0, -1).Select
            MsgBox "Lütfen ""B"" sütununda ki veriyi siliniz,", vbInformation
        End If
    End If
    If Target.Column = 2 Then
        If Target.Offset(0, 1) <> "" Then
            Target.Offset(0, 1).Select
            MsgBox "Lütfen ""C"" sütununda ki veriyi siliniz,", vbInformation
        End If
    End If
10
End Sub
 
Korhan Ayhan üstadım çok teşekkür ediyorum, elleriniz sağlık. Şöyle bir ekleme yapabilir miyiz !
B sütununa verildiğinde imleç 2 sağa (D sütununa) gitsin.

Target.Offset(0, 2).Select olduğunu biliyorum ama hangi satıra konulması gerektiğini çözemedim :(
 
afedersiniz üstadım aceleden yanlış yazmışım.

B sütununa veri girildiğinde (ve C sütunu boş iken) imleç/cursör 2 sağa (D sütununa) gitsin.
 
Sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo 10
    If Target.Column = 2 Then
        If Target <> "" Then
            If Target.Offset(0, 1) = "" Then
                Target.Offset(0, 2).Select
            End If
        End If
    End If
    If Target.Column = 3 Then
        If Target <> "" Then
            If Target.Offset(0, -1) = "" Then
                Target.Offset(0, 1).Select
            End If
        End If
    End If
10
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo 10
    If Target.Column = 3 Then
        If Target.Offset(0, -1) <> "" Then
            Target.Offset(0, -1).Select
            MsgBox "Lütfen ""B"" sütununda ki veriyi siliniz,", vbInformation
        End If
    End If
    If Target.Column = 2 Then
        If Target.Offset(0, 1) <> "" Then
            Target.Offset(0, 1).Select
            MsgBox "Lütfen ""C"" sütununda ki veriyi siliniz,", vbInformation
        End If
    End If
10
End Sub
 
Geri
Üst