Bu kodları nasıl aktif yaparım?

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
merhaba.
makro kaydet diyerek aşağıdaki kodları elde ettim.

Sub Makro1()
Range("C5").Select
ActiveCell.FormulaR1C1 = "125"
Range("D5").Select
Selection.ClearContents
End Sub

ancak makroyu kaydedip C5 e değer girdiğimde D5 İ silmedi. Makroyu çalıştır dediğim zaman sildi, fakat C5 e 125 yazdı(çünki kodları öyle kaydettim)
bunu C5 e her değer girdiğimde çalışacak şekilde nasıl değiştirmeliyim?
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Tekrar merhaba.
Soruyu değiştirsem olur mu?
"4. sütundaki herhangi bir hücrenin değerini değiştirdiğimde sağındaki hücreyi sil ve X isimli makroyu çalıştır"
Bu cümlenin makro dilindeki karşılığı nedir?

Bir de;
"6. sütundaki herhangi bir hücrenin değerini değiştirdiğimde sağındaki hücreyi sil ve X isimli makroyu çalıştır"
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
yazmanız gereken kod şudur

Çlaıştığınız sayfanın kod bölümünü açın ve sayfanın change olayına

if target.address = range("c5").address then
'Gerçekleştirmek istediğiniz kodları yazın

end if

Sonuç= c5 hücresinde bir değişiklik olduğunda makro çalışacak
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
teşekkürler.
Fakat işi C5 ile sınırlandırmak istemiyorum.
Bütün C sütunu ya da D sütunu için nasıl yazmalıyım.
Bir de iki sütun için nasıl olmalı? Yani hem D hem F(örneğin)
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
if target.column = 3 or target.column = 4 then

end if

3 ile 4 rakamı sutun sıra numarasıdır

yani 3 C sütunun 4 ise D sütununu ifade ediyor.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
çalışmadı.
acaba dosyayı eklesem ilgilenirmisiniz?
4. ve 5. sütundaki rakamları değiştirdiğim zaman yanındaki kuruşları da silip yeni kuruş değerlerini yazmasını istiyorum.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Ã?zür dilerim şu an internet cafedeyim ve burada office programı yok

önceki cevabımı inceledinizse ben C ve D sütunlarına göre bir kod yazmıştım bunu değiştirmek için Sütun numarasaını doğru yazın.

Bunu yaptıktan sonra çalışması lazım.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
dediğiniz gibi yaptım. ama çalışmadı.
kodları gönderiyim o zaman.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 6 Then
If Target.Column = 4 Then
a = Target.Row - 1
If a <= 0 Then a = 1 Else
If Cells(a, 5) = 0 Then
If Cells(a, 4) = 0 Then Exit Sub
Cells(a, 5) = (100 * Cells(a, 4)) - (100 * Int(Cells(a, 4)))
Cells(a, 4) = Int(Cells(a, 4))
End If
End If
If Target.Column = 6 Then
a = Target.Row - 1
If a <= 0 Then a = 1 Else
If Cells(a, 7) = 0 Then
If Cells(a, 6) = 0 Then Exit Sub
Cells(a, 7) = (100 * Cells(a, 6)) - (100 * Int(Cells(a, 6)))
Cells(a, 6) = Int(Cells(a, 6))
End If
End If
End If
End Sub
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Yazdığınız kodlara göre Eğer D(4.sütun) sütununda yada F(6.Sütun) sütunun da bir değişiklik olduğunda kodlarınız çalışması lazım.

Eğer yinede çalışmıyorsa nedenini anlayamadım.

bir başka yadım:

En baştaki satırın yanını tıklayarak satırı renklendirin
ve kod işlemesini orada durdurmuş olun F8 tuşuna basarak kodları çalıştırmaya manuel olarak devam ettirin. Bu şekilde hatayı bulabilirsiniz umarım.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
peki, çok teşekkür ederim.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
sanırım bu kodda "kuruşlu kısmı sil" komutu eksik.
ama ben nasıl ve nereye ilave edeceğimi bilmiyorum.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
arkadaşlar gene ben, herkese günaydın.

3 mesaj önce yazdığım kodlar çalışıyor ancak istediğim şeyi yapamadım bi türlü.
yani, ytl yazacağım hücreyi değiştirdiğim zaman yanındaki kuruşlu kısmı silsin istiyorum.
çünki başka türlü yeni rakamın kuruşunu yazmıyor, elle silip yazmam gerekiyor.
herkese kolay gelsin
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 6 Then
ActiveCell.Offset(0, 1).Select
Selection.ClearContents
If Target.Column = 4 Then

üst kısmını şu şekilde değiştiridim.
ancak bu sefer de hücreyi seçer seçmez yanındakine geçiyor ve siliyor. yeni rakamı yazamıyorum.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
"4.sütundaki herhangi bir hücreye değer yazılırsa"
nasıl kodlarım?
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
kodlarımın son hali.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 6 Then
ActiveCell.Offset(0, 1).Select
Selection.ClearContents
ActiveCell.Offset(0, -1).Select
a = Target.Row - 1
If a <= 0 Then a = 1 Else
If Cells(a, 5) = 0 Then
If Cells(a, 4) = 0 Then Exit Sub
Cells(a, 5) = (100 * Cells(a, 4)) - (100 * Int(Cells(a, 4)))
Cells(a, 4) = Int(Cells(a, 4))
End If
End If
a = Target.Row - 1
If a <= 0 Then a = 1 Else
If Cells(a, 7) = 0 Then
If Cells(a, 6) = 0 Then Exit Sub
Cells(a, 7) = (100 * Cells(a, 6)) - (100 * Int(Cells(a, 6)))
Cells(a, 6) = Int(Cells(a, 6))
End If
End Sub


ancak 4. sütun ya da 6. sütundaki bir hücreyi seçtiğimde birkaç defa hücreler arası gidip gelliyor ve istediğim sütunu seçiyor(bu sorun olur mu?)
bir de, seçim yaptığı zaman yan hücreye 0 yazıyor. ben yazmasın istiyorum.
sadece değer girdiğim zaman silsin ve yeni değerin kuruşunu yazsın
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
ben bu sevdadan vazgeçtim arkadaşlar.
beceremiyorum bi türlü
 
Üst