Worksheet_change olayı

Katılım
20 Eylül 2004
Mesajlar
4
iyi günler,

Benim yapmak istediğim fakat yapamadığım şey excelde belirli bir sütundaki herhangi bir hücreye veri girişi yapıldığında girilen veriye göre yine belirleyeceğim başka bir hedef hücreye bir çıktı vermesidir. Örneğin: A2 hücresine 15 yazıp başka bir hücreye geçtiğimde A8 hücresine Türkçe Öğretmenliği, 16 yazmışsam Sosyal Bilgiler Öğretmenliği, 15 ve 16 dışında herhangi bir sayı yazmışsam Yok yazsın. A2 hücresindeki veriyi sildiğimde ise A8'in içeriğini de boşaltsın. Bu kodu nasıl yazabilirim. Aşağıdaki kod eksik çalışıyor. Sadece 'Yok' yazıyor.

Private Sub Worksheet_change(ByVal Target As Range)
Dim Satir As Integer

satir = Target.Row

If Target.Value = 15 Then
Cells(satir, 8) = "Türkçe Öğretmenliği"
ElseIf Target.Value = 16 Then
Cells(satir, 8) = "Sosyal Bilgiler Öğretmenliği"
Else
Cells(satir, 8) = "Yok"
End If
End Sub
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Merhaba
Aşağıdaki kodu deneyiniz..

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a2]) Is Nothing Then Exit Sub
Select Case Target
Case Is = 15: Target.Offset(6, 0) = "Türkçe Öğretmenliği"
Case Is = 16: Target.Offset(6, 0) = "Sosyal Bilgiler Öğretmenliği"
Case Is = Empty: Target.Offset(6, 0) = Empty
End Select
End Sub
 
Katılım
20 Eylül 2004
Mesajlar
4
Ayhan bey jet cevabınız için teşekkür ederim. Ama benim tam olarak istediğin A sütununun her hangi bir hücresine 15 yazdığında türkçe, 16 yazdığında Sosyal baka bir sayı yazdığında yok yazması. Ama o hücre hangi satırda ise o satırın 8.sütununa yazması sonucu. Örneğin A2'ye 15 yazmışsam eğer G2'de sonuç yazsın. Ya da A3'e yazmışsam sonuç G3'te görünsün istiyorum.
 
Katılım
20 Eylül 2004
Mesajlar
4
Yeni durumda

Private Sub Worksheet_Change(ByVal Target As Range)
'If Intersect(Target, [a2]) Is Nothing Then Exit Sub ??? Bu satıra ne yazmam gerekecek

Select Case Target
Case Is = 15: Target.Offset(Target.Row, 6) = "Türkçe Öğretmenliği"
Case Is = 16: Target.Offset(Target.Row, 6) = "Sosyal Bilgiler Öğretmenliği"
Case Is = ?: Target.Offset(Target.Row, 6) = "Yok" ?? Bu satıra ne yazmam gerekecek
Case Is = Empty: Target.Offset(Target.Row, 6) = Empty
End Select
End Sub
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Tekrar Merhaba

Aşağıdaki kodu deneyiniz..

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a:a]) Is Nothing Then Exit Sub
Select Case Target
Case Is = 15: Target.Offset(0, 6) = "Türkçe Öğretmenliği"
Case Is = 16: Target.Offset(0, 6) = "Sosyal Bilgiler Öğretmenliği"
Case Is = Empty: Target.Offset(0, 6) = Empty
Case Else: Target.Offset(0, 6) = "Yok"
End Select
End Sub
 
Üst