Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 19-04-2017, 14:50   #1
taboo165
 
Giriş: 27/01/2015
Şehir: istanbul
Mesaj: 8
Excel Vers. ve Dili:
2010
Varsayılan Koşullu Hücre Kilitleme

Herkese Merhaba,

Forum içerisinde bir kaç konuda benzer talepler yer almış ancak kodları türeterek kendi tabloma uygulamak istediğimde sonuç alamadım.

Kısaca özetliyeyim;

C6 Hücresinde "Var" "Yok" seçenekli bir veri doğrulamam var.
Bu Hücrede "Yok" işaretlediğimde, D6 hücresine 0 yazdırmak ve bu hücreyi kilitlemek istiyorum.

Tabi kilitlediğim esnada bu hücredeki "0"'ın diğer hücrelerdeki formüllerde çalışabilmesi gerekiyor.

Veri doğrulamada "Var"'ı işaretlediğimde de yine D6 hücresindeki kilidi çözerek "Veri Giriniz" yazdırmak istiyorum.

Bu koşullu hücre kilitlemesini tablomda birden fazla yerde kullanacağım.

C6:C12 arası hücreleri "Var" "Yok" ile koşullayarak D6: D12 arası hücreleri tetikletmek istiyorum.

Bu konu ile ilgili yardımcı olabilirseniz çok sevinirim.

Saygılar
taboo165 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 19-04-2017, 15:32   #2
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 766
Excel Vers. ve Dili:
2010-2016
Varsayılan

Örnek dosyanızı eklerseniz yardımcı olmaya çalışayım.
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 19-04-2017, 15:41   #3
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 766
Excel Vers. ve Dili:
2010-2016
Varsayılan

Aşağıdaki kodlar ile deneyin bir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C6:C12]) Is Nothing Then Exit Sub
If Target.Value = "Yok" Then
    Cells(Target.Row, "D").Select
    Selection.Locked = False
    Cells(Target.Row, "D").Value = "0"
    Selection.Locked = True
Else
    Cells(Target.Row, "D").Select
    Selection.Locked = False
    Cells(Target.Row, "D").Value = "Veri Giriniz"
    Selection.Locked = True
End If
Target.Select
End Sub
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 19-04-2017, 16:11   #4
taboo165
 
Giriş: 27/01/2015
Şehir: istanbul
Mesaj: 8
Excel Vers. ve Dili:
2010
Varsayılan

Çalışmanız için çok teşekkür ederim 0 ve veri giriniz sorunsuz çalıştı ancak "Yok" seçili iken hedef hücre kilitlenmedi.

Sizce neden kaynaklanmış olabilir?
taboo165 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 19-04-2017, 18:33   #5
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 766
Excel Vers. ve Dili:
2010-2016
Varsayılan

Aşağıdaki şekilde deneyin. Aslında kilitliyor ama kilidin işlemesi için sayfanın kilitli olması gerekir. Kodlarda öncelikle sayfanın kilidi açılıyor. Sonra işlem sonrası tekrar kilitleniyor.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C6:C12]) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "a"
If Target.Value = "Yok" Then
    Cells(Target.Row, "D").Select
    Selection.Locked = False
    Cells(Target.Row, "D").Value = "0"
    Selection.Locked = True
Else
    Cells(Target.Row, "D").Select
    Selection.Locked = False
    Cells(Target.Row, "D").Value = "Veri Giriniz"
    Selection.Locked = True
End If
Target.Select
ActiveSheet.Protect "a"
End Sub
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-04-2017, 08:25   #6
taboo165
 
Giriş: 27/01/2015
Şehir: istanbul
Mesaj: 8
Excel Vers. ve Dili:
2010
Varsayılan

Son gönderdiğiniz kodları tabloma uyarlamak için epey uğraştım ancak sanırım benden kaynaklı nedenlerle beceremedim.

Yurt dışı sitelerde aşağıdaki kodu buldum. Bu kod değişkeni seçtikten sonra hedef hücreyi kilitlemek yerine bir yanı, bir altı neye ayarlanmışsa ona otomatik geçiş yapıyor.

Bu kod dizisini yukarıdaki senaryo için güncelleme şansınız var mıdır?

Değişkenlerim C6:C12, hedef hücrelerim D612 idi, bunu hem C - D sütünları hem de K6:K8 (değişken) L6:L8 (hedef) olarak yazabilirseniz çok memnum olurum.

Saygılar

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B1")) Is Nothing Then
        If [a1] = True Then
            Application.EnableEvents = False
            [c1].Select
            Application.EnableEvents = True
        End If
    End If
End Sub
taboo165 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-04-2017, 09:28   #7
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 766
Excel Vers. ve Dili:
2010-2016
Varsayılan

Örnek dosya eklerseniz bakalım.
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-04-2017, 10:08   #8
taboo165
 
Giriş: 27/01/2015
Şehir: istanbul
Mesaj: 8
Excel Vers. ve Dili:
2010
Varsayılan

Linke yer alan dosyada örnek çalışmayı bulabilirsiniz, hücre konumları çalışmamla aynıdır.

https://wetransfer.com/downloads/373...1080644/bc6ee6
taboo165 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 02:30


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Hurda - Torna - Çorlu Web Tasarım - Tarot Falı - Fenerbahçe Haberleri - Trakya Haberleri - Investing - Hurda - Kobi Danışmanlık - Tekirdağ Samsung - Kozmetik Ürünler - Sağlıklı Makyaj Ürünleri - Yaşlanma Karşıtı Ürünler - Excel Eğitimi - Çorlu OSGB - Lingerie - Dyeing Machine - Çorlu Temizlik- Didim Çatı İnşaat- Çorlu Ambar- Hava Çekimi- Hazır Site- SEO- Çorlu Estetik
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden