KutoolsforOffice — Tek çözüm, beş güçlü araç.Daha az çabayla daha fazlasını başarmak.

Excel'de bir hücrenin önceki değerini nasıl hatırlayabilir veya kaydedebilirim?

YazarSiluvia Değiştirme Tarihi

Excel'de bir hücreyi düzenlediğinizde, önceki değer anında üzerine yazılır ve geri alma işlemi yapmadığınız sürece artık görünmez hale gelir. Bu önceki değeri karşılaştırma, denetim veya geri alma amacıyla saklamanız gerekiyorsa, her değişiklikten önce kısa bir VBA rutiniyle eski değeri otomatik olarak bir yardımcı sütuna kaydedebilirsiniz. Alternatif olarak, dosyanız OneDrive veya SharePoint'te saklanıyorsa, Microsoft 365’teki “Değişiklikleri Göster” ve “Sürüm Geçmişi” gibi araçlarla değişiklikleri inceleyebilirsiniz. Bu eğitim, iş akışınıza ve yönetişim ihtiyaçlarınıza en uygun yöntemi seçmeniz için her iki yaklaşımı da ayrıntılı şekilde açıklar.


Excel'de VBA koduyla önceki hücre değerini kaydedin

Aşağıdaki ekran görüntüsünde gösterildiği gibi bir tablonuz olduğunu varsayalım. C sütunundaki herhangi bir hücre düzenlendiğinde, önceki değerini G sütunundaki ilgili hücreye kaydetmek ya da eski değeri ileride başvurmak ve incelemek üzere otomatik olarak bir Yorum olarak eklemek isteyebilirsiniz. Bu yaklaşım, devam eden veri girişi veya kalite kontrolleri sırasında eski değerlere hızlıca başvurmanız ya da sürekli bir günlük tutmanız gerektiğinde özellikle yararlıdır.

Önceki hücre değerlerini kaydetmek için hedef sütunu gösteren bir Excel tablosunun ekran görüntüsü

Temel senaryo: Stok takibi, günlük kayıtlar veya finansal izleme gibi düzenli olarak değişiklikleri incelediğiniz ya da uzlaştırdığınız çalışma sayfalarında, önceki değerlerin görünür olması zamanı kazandırır ve yanlışlıkla veri kaybını en aza indirir.

Başlamak için öncelikle önceki değerleri kaydetmek istediğiniz çalışma sayfasını açın. Ardından aşağıdaki adımları uygulayın:

1. Sayfa sekmesine sağ tıklayın ve kısayol menüsünden **"Kodu Görüntüle"** seçeneğini seçin—bu işlem, Visual Basic for Applications (VBA) düzenleyicisini açar. Ekran görüntüsüne göz atın:

Excel'de sayfa sekmesinin sağ tıklama menüsünde Kodu Görüntüle seçeneğini gösteren bir ekran görüntüsü

2. "Microsoft Visual Basic for Applications" penceresinde, aşağıdaki VBA kodunu Kod penceresine yapıştırın. Bu makro, hedef sütundaki hücrelerin önceki değerlerini başka bir sütuna kaydetmenizi sağlar.

Bu betiği çalıştırmadan önce koddaki hedef sütun referanslarını güncellediğinizden emin olun. Örneklerde "C:C", değişikliklerin izleneceği sütunu belirtirken; "7" sayısı ise önceki değerlerin saklandığı G sütununa karşılık gelir. Düzeninize uygun şekilde bu referansları özelleştirebilirsiniz.

VBA kodu: Önceki hücre değerini başka bir sütundaki hücreye kaydetme

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xDCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    x = xDic.Keys
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        Set xDCell = Cells(xCell.Row, 7)
        xDCell.Value = ""
        xDCell.Value = xDic.Items(I)
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Formula
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

Önceki değeri bir Yorum olarak saklamak daha uygunsa—hızlı görüntüleme ve açıklama için yararlıdır—hedef sütundaki bir hücre her değiştirildiğinde bunu otomatik olarak gerçekleştiren aşağıdaki VBA kodunu kullanın:

VBA kodu: Önceki hücre değerini yoruma kaydetme

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        If Not xCell.Comment Is Nothing Then xCell.Comment.Delete
        With xCell
            .AddComment
            .Comment.Visible = False
            .Comment.Text xHeader & vbCrLf & xDic.Items(I)
        End With
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Text
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

Parametre notları:

  • Number7 ifadesi, Cells(xCell.Row,7) içinde G sütununu belirtir. Önceki değeri başka bir sütunda saklamak istiyorsanız, bu değeri değiştirin.
  • Range("C:C"), hangi sütundaki değişikliklerin izleneceğini belirler. Gerektiğinde bunu "D:D" gibi başka bir sütunla güncelleyin.

3. Betik için sözlük desteğini etkinleştirmek üzere VBA Düzenleyici’de “Araçlar” > “Referanslar…” seçeneğine gidin. “Referanslar – VBAProject” iletişim kutusu açıldığında “Microsoft Scripting Runtime” seçeneğini işaretleyin ve aşağıda gösterildiği gibi “Tamam”a tıklayın:

Microsoft Scripting Runtime'ın seçili olduğu Başvurular iletişim kutusunun bir ekran görüntüsü

4. VBA düzenleyicisini kapatıp çalışma sayfanıza dönmek için "Alt" + "Q" tuşlarına basın.

Bu andan itibaren C sütunundaki bir değer değiştirildiğinde Excel, önceki değeri otomatik olarak G sütununa kopyalayacak veya ilgili hücrenin yorumuna ekleyecektir. Böylece değişiklikleri kolayca izleyebilir, doğrulayabilir ve geçmiş verilere inceleme, denetim veya hata düzeltme amacıyla erişebilirsiniz.

Diğer hücrelere önceki hücre değerlerini kaydetmenin örnek çıktısı:

Excel'de önceki hücre değerlerinin başka bir sütunda kaydedildiğini gösteren bir ekran görüntüsü

Yorumlara önceki hücre değerlerini kaydetmenin örnek çıktısı:

Excel'de önceki hücre değerlerinin yorum olarak kaydedildiğini gösteren bir ekran görüntüsü

İpuçları ve sorun giderme:

  • VBA makroları beklendiği gibi çalışmazsa, "Dosya" > "Seçenekler" > "Güven Merkezi" > "Makro Ayarları" altındaki makro güvenlik ayarlarını kontrol edin ve "Tüm makroları etkinleştir" seçeneğini seçin.
  • Değerler beklenen konuma kaydedilmiyorsa, sütun referanslarınızı gözden geçirin.
  • Sorunlar devam ederse, yukarıda belirtildiği gibi “Microsoft Scripting Runtime” kitaplığının doğru şekilde etkinleştirildiğinden emin olun.

Microsoft 365 — Önceki ve güncellenmiş hücre değerlerini Değişiklikleri Gösterve Sürüm Geçmişi

Microsoft 365'te, eski İzleme Değişiklikleri özelliğine gerek kalmadan düzenlemeleri denetleyebilirsiniz — kimin neyi ne zaman değiştirdiğini ve önceki/sonraki değerleri dahil! Hücre düzeyinde ayrıntılar için Değişiklikleri Göster özelliğini, tüm dosya anlık görüntülerini ve geri yüklemeleri görmek içinse Sürüm Geçmişi özelliğini kullanın.

Gereksinimler

  • Çalışma kitabı, OneDrive veya SharePoint üzerine kaydedildi.
  • Bir Microsoft 365 hesabıyla oturum açıldı; Otomatik Kaydet özelliği Açık.
  • Modern biçim ().xlsx); eski Paylaşılan Çalışma Kitabı (Eski) kullanılmıyor.

Değişiklikleri Göster (hücre düzeyinde denetim)

1. Bulutta kaydedilen çalışma kitabını açın ve bölme panelini açmak için Gözden Geçir ▸ Değişiklikleri Göster yolunu izleyin.
2. (İsteğe bağlı) Sonuçları daraltmak için öncelikle bir sayfa veya aralık seçin.
3. Girişleri inceleyerek düzenleyiciyi, zaman damgasını ve eski → yeni değerleri görün; ilgili hücreye gitmek için bir girişe tıklayın.

Sürüm Geçmişi (karşılaştır ve geri yükle)

1. Şuraya gidin: Dosya ▸ Bilgi ▸ Sürüm Geçmişi.
2. Karşılaştırmak için önceki bir sürümü açın; hücreleri dışarı kopyalayın veya tüm dosyayı geri yüklemek için Geri Yükle seçeneğine tıklayın.

  • Değişiklikleri Göster gri mi görünüyor?OneDrive veya SharePoint’e kaydedin, Otomatik Kaydet özelliğini açın ve Windows sürümünüz 10 veya üzeri, Excel sürümünüz ise 2013’ten yeniyse, en iyi sonucu almak için bu dosyayı dönüştürün ()Dosya ▸ Bilgi ▸ Dönüştür). Ayrıca, Paylaşılan Çalışma Kitabı (Eski) özelliğinin kapalı olduğundan emin olun. Sorun masaüstü sürümünde devam ederse, Excel for the web’i deneyin.
  • Güvenlik/Kilitler: Çalışma kitabı veya sayfa koruması, şifreleme ya da IRM, Değişiklikleri Göster özelliğini devre dışı bırakabilir.
  • Yerel dosyalar: Yalnızca yerel olarak saklanan dosyalar için tam geçmiş tutulmaz; en iyi sonuçlar için Sürüm Geçmişini bulut üzerinden kullanın.
  • Hücrelere eski değerler kaydedilsin mi? Değişiklikleri Göster ve Sürüm Geçmişi denetim araçlarıdır. Her düzenleme sırasında "önceki değeri" bir yardımcı sütuna kaydetmek istiyorsanız, küçük bir Worksheet_Change VBA olay işleyicisi kullanın.

Avantajlar

  • Kimin ne zaman değiştirdiğini ve önceki/sonraki değerleriyle birlikte otomatik olarak denetler; makroya gerek kalmaz.
  • OneDrive/SharePoint'te saklandığında Windows, Mac ve web dahil çoklu platformlarda sorunsuz çalışır.

Dezavantajlar

  • Bulut depolama ve Otomatik Kaydet özelliğini gerektirir; bazı geçici düzenlemeler için sınırlı ayrıntı sağlar.
  • Önceki değerleri hücrelere doldurmaz; iş mantığınız bunu gerektiriyorsa VBA kullanın.

En İyi Office Üretkenlik Araçları

🤖KUTOOLS AI Yardımcısı: Şunu temel alarak Veri Analizi’i devrimleştirin:Akıllı Yürütme   |  Kod Oluştur|  özel formüller Oluştur  |  Verileri Analiz Et ve Grafikler Oluştur|  Geliştirilmiş İşlevler Çağır…
Popüler Özellikler:Bul, Vurgula veya Yinelenenleri İşaretle   |  Boş Satırları Sil   |  Veri Kaybetmeden Sütunları Birleştir veya Hücreleri   |   Formül kullanmadan yuvarlama…
Süper ARA:Çoklu Kriterli Dikey Arama (VLookup)  |  Çoklu Değerli Dikey Arama (VLookup)  |   Birden Fazla Sayfada Dikey Arama (VLookup)   |   Bulanık Eşleme…
Gelişmiş Açılır Liste:Açılır Liste Hızlıca Oluştur   |  Bağımlı Açılır Liste   |  Çoklu Seçimli Açılır Liste…
Sütun Yöneticisi:Belirli Sayıda Sütun Ekle|Sütunları Taşı|Gizli Sütunların Görünürlük Durumunu Aç/Kapat|Aralıkları ve Sütunları Karşılaştır…
Öne Çıkan Özellikler:Izgara Odaklama   |  Tasarım Görünümü   |Gelişmiş formül çubuğu   | Çalışma Kitabı ve Sayfa Yöneticisi   |  Kaynaklar(Otomatik Metin)|  Tarih Seçici   |  Çalışma Sayfalarını Birleştir  |  Şifrele/Hücreleri Şifre Çöz   | Listeye Göre E-posta Gönder   |  Süper Filtre   |   Özel Filtre(Kalın Yazılı Hücreleri Filtrele/italik/üstü çizili…) …
En Çok Kullanılan 15 Araç Setleri:12 MetinAraçları(Metin Ekle,Belirli Karakterleri Sil, …)|   50+GrafikTürleri(Gantt Grafiği, …)|   40+ Pratik Formüller(Doğum tarihine dayanarak yaş hesapla, …)|   19 EklemeAraçları(QR Kodu Ekle,Yoldan Resim Ekle, …)|   12 DönüştürmeAraçları(Kelimeye Dönüştür,Döviz Kuru Dönüşümü, …)|   7 Birleştir ve AyırAraçları(Gelişmiş Satırları Birleştir,Hücreleri Böl, …)|… ve daha fazlası
Kutools'u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve 40+ başka dillerde de desteklenir!

Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…


Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.

  • Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
  • Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
  • Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!

Tüm Kutools eklentileri — tek bir kurulum dosyasında!

Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.

ExcelWordOutlookTabsPowerPoint
  • Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
  • Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
  • Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
  • 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
  • En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar