• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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.
 
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
 
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

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.
 
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
 
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

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
 
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ı.
 
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.
 
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
 
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
 
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
 
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...
 
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
 
Geri
Üst