comboboxdan bir değer seçince yanindaki hücreye otomatik olarak değer ataması

Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
Merhaba,
Yapmak istediğim şey D5 deki combobox da 0 değerini seçersem E5 ve F5 e direkt olarak 0 değerini ataması ve bu hücrelerin deaktif olması. Bunu nasıl yapabilirim. Dosyam ektedir. Yardımcı olursaniz cok sevinirim.
 
Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
tam kelimeyi bilmiyorum , inaktif , salt okunur ?? Yani D5 te 0 degerini secerse E5 ve F5 de sıfır olsun ve üzerine tiklandiginda müdahale edilemesin. G5 e de toplam degeri 0 olarak atadiktan sonra veri girsine H5 itibari ile izin versin.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Aşağıdaki kodları "YAZSINÇİZ" sayfasının kod kısmına ekleyin. Koşullar doğru olduğunda "E5" ve "F5" hücreleri seçilemeyek. Bu da işinizi görür zannedersem.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$5" And Target = 0 Then
    [E5,F5] = 0
        ElseIf Target.Address = "$D$5" And Target <> 0 Then
    [E5,F5] = ""
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If [D5] = 0 And (Target.Address = "$E$5" Or Target.Address = "$F$5") Then
       Target.Offset(1, 0).Select
    End If
End Sub
 
Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
Merhaba Hamit bey,
Öncelikle çok teşekkürler, ellerinize sağlık.
Göndermiş olduğunuz kodu ekledim. İstediğim şey olmuş ancak terimlere yabancı ve excelde bir sorunu açıklamada yetersiz olduğum için, sanırım yanlış aktardım bazı şeyleri. Göndermiş olduğunuz kodda D5 i sıfır seçince E5 ve F5 sıfır oluyor ancak uzerine tıkladığımızda bir alt satıra gidiyor benim istediğim direkt olarak H5 in üzerine gitmesiydi. Ben de göndermiş olduğunuz kodu kendimce çözerek şöyle yaptım:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$5" And Target = 0 Then
[E5,F5] = 0
ElseIf Target.Address = "$D$5" And Target <> 0 Then
[E5,F5] = ""
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [D5] = 0 And (Target.Address = "$E$5" Or Target.Address = "$F$5" Or Target.Address = "$G$5") Then
Target.Offset(0, 1).Select
End If
End Sub

Çalıştırdığımda olmuş gibi görünüyor.Bir de demin dediğim gibi size eksik ve yanlış aktardığımdan dolayı bu kod sadece D5 için çalışıyor.Aslında ben bunu 4.sutunun tümü için kullanmak istiyorum. Yani D5 de çalıştığı gibi D12 VE D17de çalışsın. Hatta ben 18. kişiyi eklediğimde orada da çalışşsın. Çok mu karışık olur?
İyi çalışmalar,
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
bu kod sadece D5 için çalışıyor.Aslında ben bunu 4.sutunun tümü için kullanmak istiyorum. Yani D5 de çalıştığı gibi D12 VE D17de çalışsın. Hatta ben 18. kişiyi eklediğimde orada da çalışşsın
Şu şekilde deneyiniz.

Kod:
Public son As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Set Sh = Sheets("YAZSINÇİZ")
son = Sh.Cells(65536, 1).End(xlUp).Row
If Intersect(Target, Sh.Range(Cells(5, 4), Cells(son, 4))) Is Nothing Then Exit Sub
    If Target = 0 Then
          Cells(Target.Row, 5) = 0: Cells(Target.Row, 6) = 0
    ElseIf Target <> 0 Then
          Cells(Target.Row, 5) = "": Cells(Target.Row, 6) = ""
    End If
    Set Sh = Nothing
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Set Sh = Sheets("YAZSINÇİZ")
If Intersect(Target, Sh.Range(Cells(5, 5), Cells(son, 6))) Is Nothing Then Exit Sub
   If Cells(Target.Row, 4) = 0 Then
        Target.Offset(0, 1).Select
   End If
Set Sh = Nothing
End Sub
 
Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
Merhaba,
Denedim. Çok güzel olmuş.Tam istediğim gibi çalışıyor ancak D sutununda sıfırı seçince G sutununa kadar atlıyor. Acaba G yi de gecip H ye atlaması için ne yapılabilir?
 
Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
Merhaba,
Kodunuzdaki Cells(son, 6))) yı 7 yaptim. Oldu gibi görünüyor. Doğru mudur sizce?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Set Sh = Sheets("YAZSINÇİZ")
If Intersect(Target, Sh.Range(Cells(5, 5), Cells(son, 7))) Is Nothing Then Exit Sub
If Cells(Target.Row, 4) = 0 Then
Target.Offset(0, 1).Select
End If
Set Sh = Nothing
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kesinlikle do&#287;ru...

"6" y&#305; "7" yapmakla, E,F veya H s&#252;tunlar&#305;n&#305;, ko&#351;ula g&#246;re atlama i&#351;lemi i&#231;in se&#231;mi&#351; bulunuyorsunuz. Bu da sizi e&#287;er ko&#351;ul do&#287;ruysa, direkt G s&#252;tunundaki ilgili h&#252;creye kayd&#305;r&#305;yor.
 
Katılım
24 Ağustos 2007
Mesajlar
14
Excel Vers. ve Dili
2003 türkçe
Emeği geçen herkese çok teşekkür ederim.
İyi çalışmalar.
 
Üst