• DİKKAT

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

Koşullu Scroll Area

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. Scroll Area veya başka bir kod ile bir alanın seçilebilmesi için yanında bir koşul yazması sağlanabilir mi ?

Örneğin A sütununda TRABZON yazarsa B sütununda yanındadki hücre seçilebilir. Yazmaz ise seçilemez. Böyle bir kod mümkün müdür ?
Örnek dosya ekte.
 

Ekli dosyalar

Çalıişma sayfasındaki Sayfanın modülüne.:cool:
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
If Target.Offset(0, -1).Value <> "trabzon" Then Target.Offset(0, -1).Select
End Sub
 
Sayın Orion1 çok çok teşekkür ederim. Bu özelliğe bir de şunu ekleyebilir miyiz ?
Mevcut TRABZON yazılarını dikkate alıyor. Yeni yazılanları da dikkate alabilir mi ?
 
Sayın Orion1 çok çok teşekkür ederim. Bu özelliğe bir de şunu ekleyebilir miyiz ?
Mevcut TRABZON yazılarını dikkate alıyor. Yeni yazılanları da dikkate alabilir mi ?

Merhaba
Scroll Area bu şekilde kullanamazsın. veri doğrulama gibi birşey olabilir.
Başka seçenekler de olabilir ama Scroll Area olmaz.
 
Sayın uzmanamele çok teşekkür ederim. Bir el atarsanız duacınız oluruz.
 
Merhaba,

Diyelimki A1 hücresine "TRABZON" yazdık ve enter tuşuna bastık. Bu durumda kodun nasıl bir tepki vermesini istiyorsunuz?
 
Merhaba sayın Korhan Ayhan. A1 hücresine TRABZON yazınca B1 hücresi seçilebilir olmasını bekliyorum.
 
Merhaba,

Bu işlemdeki amaç nedir?
 
A sütununa TRABZON yazınca B sütunundaki satır seçilebilir olacak. Ancak OF yazılı ise artık A ve B sütunundaki ilgili satırlar seçilememeli. Yani B sütununa OF yazmak isteyen önce A sütununa TRABZON yazacak. Ancak sonra bu 2 kaydı değiştiremeyecek.
 
Aslında sayın Orion1 in 2 nolu mesajda koda aşağıdaki ekleme yapılabilse harika olacak :

If Target.Offset(0, -1).Value <> "OF" Then Target.Offset(0, -1).Select
 
A sütununa TRABZON yazınca B sütunundaki satır seçilebilir olacak. Ancak OF yazılı ise artık A ve B sütunundaki ilgili satırlar seçilememeli. Yani B sütununa OF yazmak isteyen önce A sütununa TRABZON yazacak. Ancak sonra bu 2 kaydı değiştiremeyecek.

Merhaba
Bu işlem için biçilmiş kaftan veri doğrulamadır, başka yol aramanıza gerek yok.
 
Size katılıyorum sayın uzmanamele. Ancak doğrulamada hücre içeriğinin silinmesini engelleyemiyoruz. Bu noktada hücrnin seçilmesini engellemek daha etkili çözüm oluyor.
 
Size katılıyorum sayın uzmanamele. Ancak doğrulamada hücre içeriğinin silinmesini engelleyemiyoruz. Bu noktada hücrnin seçilmesini engellemek daha etkili çözüm oluyor.

Merhaba

birbirine bağlı veridoğrulama örneklerini inceleyin, aradığınız oradadır.
 
Merhaba,

Alternatif olarak aşağıdaki kodu ilgili sayfanızın kod bölümüne uygulayınız.

İlgili hücrelerde değişiklik yapmak istediğinizde hücre üzerinde çift tıklamanız yeterlidir.

Kod:
Option Explicit
Dim Adres As String, Kontrol As Boolean
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
    ActiveSheet.Unprotect "123"
    Cancel = True
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
    On Error GoTo Son
    ActiveSheet.Unprotect "123"
    Application.EnableEvents = False
    If Target.Column = 1 And Target <> "" Then
        Target.Next.Select
        Adres = ActiveCell.Address(0, 0)
        Kontrol = True
        If Target.Row > 1 Then Target.Locked = True
    End If
    If Target.Column = 2 And Target <> "" Then
        Cells(Target.Row + 1, 1).Select
        If Target.Row = 1 Then
            Range("A1:B1").Locked = True
        Else
            Range("A1:B" & Target.Row).Locked = True
        End If
    End If
Son:
    ActiveSheet.Protect "123"
    Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Son
    ActiveSheet.Unprotect "123"
    Application.EnableEvents = False
    If Adres <> "" Then
        If Range(Adres) = "" And Kontrol = False Then
            MsgBox Adres & " hücresine veri girişi yapmalısınız !", vbCritical
            Range(Adres).Select
        End If
        Kontrol = False
    End If
Son:
    ActiveSheet.Protect "123"
    Application.EnableEvents = True
End Sub
 
Sayın Korhan Ayhan yardımlarınız için çok teşekkür ederim.
 
Geri
Üst