Hücre İçeriği Ne Zaman Değişti...

Katılım
19 Nisan 2005
Mesajlar
32
Arkadaşlar Merhaba

Sorum kısa
Bir hücrenin içeriğini değiştirdiğimde, değiştirme tarihini başka bir hücreye yazacak bir FORMÜL yazabilirmiyiz??

İlginize teşekkürler.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Arkadaşlar Merhaba

Sorum kısa
Bir hücrenin içeriğini değiştirdiğimde, değiştirme tarihini başka bir hücreye yazacak bir FORMÜL yazabilirmiyiz??

İlginize teşekkürler.
merhaba

örnek dosya ekleseydiniz sorununuz daha kolay çözülebilirdi.

A1 hücre içeriği değiştiğinde B1 hücreye tarih ve saat yazar

bu kodu standart modüle yazınız.
Kod:
Public metin As String
bu kodu sayfanın kod bölümüne yazınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1")) Is Nothing Then Exit Sub
If Target.Text <> metin Then
Range("b1") = Now
End If
MsgBox "eski metin :" & metin & Chr(10) & "yeni metin :" & Target.Text
End Sub
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
metin = Range("a1").Text
End Sub
 
Katılım
19 Nisan 2005
Mesajlar
32
uzmanamele teşekkürler hızlı cevabın için

Örnek dosyayı ekledim.
Sorumu tekrar açıklayayım.

Kırmızı hücreye ödendi yazdığımda, yazdığım andaki tarih ve saati sarı hücreye nasıl yazdırabilirim. Yazılan tarih ve saat daha sonraki açışlarımda değişmemesi gerekiyor. Yani kredi kartımın borcunu ne zaman ödedim daha sonra bakabilmeliyim. Son bir ricam bunları makro ile değilde formüller yardımı ile yapabilirmiyiz?

İlginize teşekkürler.
 

Ekli dosyalar

Katılım
19 Nisan 2005
Mesajlar
32
Arkadaşlar problemimi hala çözemedim...

Arkadaşlar problemimi hala çözemedim...


uzmanamele teşekkürler hızlı cevabın için

Örnek dosyayı ekledim.
Sorumu tekrar açıklayayım.

Kırmızı hücreye ödendi yazdığımda, yazdığım andaki tarih ve saati sarı hücreye nasıl yazdırabilirim. Yazılan tarih ve saat daha sonraki açışlarımda değişmemesi gerekiyor. Yani kredi kartımın borcunu ne zaman ödedim daha sonra bakabilmeliyim. Son bir ricam bunları makro ile değilde formüller yardımı ile yapabilirmiyiz?

İlginize teşekkürler.
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sayfanın kod bölümüne aşağıdaki kodu yapıştırınız.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G:G]) Is Nothing Then Exit Sub
Target.Offset(0, -1) = Now
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,361
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Tahsin bey sorunuzu yanıtlamış, bende farklı yaklaşayım.

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayınız. A:H arasında herhangi bir satıra çift tıklarsanız G hücresine "ÖDENDİ" F hücresine ise sistem tarihini yazar.

G hücresi dolu iken aynı satıra çift tıklarsanız hem G hem F hücresini siler.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:H]) Is Nothing Then Exit Sub
If Target.Row < 2 Then Exit Sub
If Range("G" & Target.Row) = "" Then
   Range("G" & Target.Row) = "ÖDENDİ"
   Range("F" & Target.Row) = Now
Else
   Range("G" & Target.Row) = ""
   Range("F" & Target.Row) = ""
End If
End Sub
 

Ekli dosyalar

Katılım
18 Haziran 2014
Mesajlar
5
Excel Vers. ve Dili
2010
merhaba

örnek dosya ekleseydiniz sorununuz daha kolay çözülebilirdi.

A1 hücre içeriği değiştiğinde B1 hücreye tarih ve saat yazar

bu kodu standart modüle yazınız.
Kod:
Public metin As String
bu kodu sayfanın kod bölümüne yazınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1")) Is Nothing Then Exit Sub
If Target.Text <> metin Then
Range("b1") = Now
End If
MsgBox "eski metin :" & metin & Chr(10) & "yeni metin :" & Target.Text
End Sub
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
metin = Range("a1").Text
End Sub



bu makroyu sütuna nasıl genişletebiliriz?
yani a sutuna ne işlersek b sutununa tarih ve saat atsın ve zaman değiştirilemesin?
şimdiden teşekkürler
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,624
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Excel'de paylaşılan bir dosya üzerinde hangi kullanıcıların ne tür işlemleri yaptığını görmek istiyorsanız aşağıdaki işlem adımlarını uygulamanız yeterli olacaktır.

1- Araçlar/Değişiklikleri izle/Değişiklikleri Vurgula
2- "Düzenlerken değişiklikleri izle, bu çalışma kitabını da paylaştır" seçeneğini işartleyin
3- "Ne zaman" , "Kim" alanlarında herhangi bir işlem yapmadan sadece "Konum" alanında dosyanızdaki değişikleri görmek istediğiniz alanı seçin
4- Eğer "Ekranda değişiklikleri vurgula" alanını işaretlerseniz kullanıcılar ortak paylaşıma açık olan dosyanızda bir takım değişiklikler yaptığında değişiklik yaptığı hücre mavi çerçeve ile gösterilecektir, bunu işaretlemezseniz mavi çerve görünmeyecektir.
5-"Tamam" butonuna tıkladığınızda çalışma kitabını kaydedileceğine dair iletiyi göreceksiniz "Tamam" butonuna tıklayın.
6- Bundan sonra kullanıcıların yaptığı değişikliklerin detayını şöyle görebilirsiniz;
7- Araçlar/Değişiklikleri izle/Değişiklikleri Vurgula/Yeni bir sayfada listele seçeneğini işaretlediğinizde "Geçmiş" adında bir sayfa oluşacaktır
8- Artık hangi kullanıcı hangi hücreyi ne zaman değiştirmiş, toplamda kaç eylem yapmış, hücrenin eski değeri neymiş ve ne olmuş gibi çok detaylı raporlara ulaşabilirsiniz.
9- Kullanıcılar paylaşılan dosyada bir takım değişiklikler yapmış ve kaydetmiş olsa bile, istediğiniz eylemleri kabul edebilir, istemediklerinizi reddedebilirsiniz, bu işlem için ;
10- Araçlar/Değişiklikleri izle/"Değişiklikleri onayla veya geri çevir" komutunu tıklayın ve "Tamam" butonuna basın, bundan sonra yapılan her değişiklik size gösterilecektir. Onaylamak veya reddetmek artık sizin elinizdedir.

Ek bilgi:
Araçlar>Çalıştırma Kitabını Paylaştır dediğinizde açılan pencerede 2 farklı sekme bulunur.Düzenleme ve Gelişmiş seçeneği.
Düzenleme penceresinde "Aynı anda birden fazla kullanıcının değişiklik yapmasına izin ver" kutucuğu tiklenir.
Gelişmiş penceresinde de yukarıda anlatılan History-Tarihçe yani geçmiş işlem kaydının kaç günlük saklanacağı(ilk değer 30 gündür) , ve bu işlemlerin hangi aşamada kayda geçirileceği(otomatik kayıt ya da 15dk'da 1 gibi) bilgileri yeralmaktadır.
Birden fazla kullanıcı aynı anda aynı hücrelere veri girerse hangisinin geçerli olacağının ayarlandıgı bölüm bu pencerededir.
Save'lenen yani kayıt yapılan bir dosyada bile son yapılan işlemleri geri alarak hatalı işlemin üzerine yapılan kayıt işlemini tersine çevirmek mümkündür


Gelişmiş seçeneği içersinde Kullanıcılar arasında çakışan değerler başlığı altında 2 seçenek var.Kaydedilen değişiklikleri sormasını seçebiliyorsunuz ya da kaydedilen değişikliklerin anında geçerli olmasını seçebiliyorsunuz.Bu alanları kontrol ederek sonuca ulaşabilirsiniz
Aynı anda 2 kişi aynı hücreye veri girdiğinde yani çakışma olduğunda bir uyarı ekranı çıkarak uyarıyor olması gerekir.

Not: Daha önce sitede paylaşılmıştı.
 
Katılım
18 Haziran 2014
Mesajlar
5
Excel Vers. ve Dili
2010
merhaba

örnek dosya ekleseydiniz sorununuz daha kolay çözülebilirdi.

A1 hücre içeriği değiştiğinde B1 hücreye tarih ve saat yazar

bu kodu standart modüle yazınız.
Kod:
Public metin As String
bu kodu sayfanın kod bölümüne yazınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1")) Is Nothing Then Exit Sub
If Target.Text <> metin Then
Range("b1") = Now
End If
MsgBox "eski metin :" & metin & Chr(10) & "yeni metin :" & Target.Text
End Sub
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
metin = Range("a1").Text
End Sub


kuvari
açıklama için teşekkürler.
bir liste yazıyorum. değişiklik konusunda yazdıklarınız çok işime yaradı.
ama yazdığım her satırın başına tarihi otomatik atması gerekiyor.
yani
b1 hücresine yazdığımda a1 hücresine tarih atsın.
b2 hücresine yazdığımda a2 hücresine tarih atsın.
b3 hücresine yazdığımda a3 hücresine tarih atsın.

excelin formulü
=EĞER(B1<>"";BUGÜN();"")
işime yaramıyor çünkü dosyayı ne zaman açarsam tarih kendiliğinden o güne atıyor.
hücreyi doldurduğum tarih sabit kalmalı.
yukarıda makro çok güzel ama tek satır için.
makronun tüm satırlar için olması mümkünmü?
değişimi sizin dediğiniz açıklama balonlarından takip edebilirim.
şimdiden teşekkürler.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,624
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A65500")) Is Nothing Then
    If Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = Date
End If
End Sub
 
Katılım
18 Haziran 2014
Mesajlar
5
Excel Vers. ve Dili
2010
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A65500")) Is Nothing Then
    If Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = Date
End If
End Sub

Makro harika olmuş teşekkür ederim.
tarihi sağdaki hücreye değilde soldakine yazırırsak nasıl yapmalıyız?
mesela a2 ye yazarsa a1 e tarih atmalı
Teşekkürler
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,624
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Makro harika olmuş teşekkür ederim.
tarihi sağdaki hücreye değilde soldakine yazırırsak nasıl yapmalıyız?
mesela a2 ye yazarsa a1 e tarih atmalı
Teşekkürler
Merhaba sayın rammstein,

Galiba yanlış ifade ettiniz."mesela a2 ye yazarsa a1 e tarih atmalı"
sadece söylediğinize göre,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
   Range("A1") = Date
End If
End Sub
 
Katılım
18 Haziran 2014
Mesajlar
5
Excel Vers. ve Dili
2010
Merhaba sayın rammstein,

Galiba yanlış ifade ettiniz."mesela a2 ye yazarsa a1 e tarih atmalı"
sadece söylediğinize göre,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
   Range("A1") = Date
End If
End Sub
Kod çalışıyor
yanlış ifade etmişim
b1 e yazdığım zaman a1 e tarih ve zaman
b2 ye yazdığım zaman a2 ye tarih ve zaman

ardışık şekilde mesela 2000 satır kadar kod çalışabilir olmalı..
şimdiden teşekkürler...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,206
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
     On Error Goto Son
     If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
     Target.Offset(0, -1) = Date
Son:
End Sub
 
Üst