Excelde, bir sayfadaki hücresi değişen satırı diğer sayfaya alt alta değer olarak yedekleme

Katılım
27 Aralık 2010
Mesajlar
46
Excel Vers. ve Dili
Office 2010 TR 64 Bit
Merhabalar,

Excelde, bir sayfadaki E hücresi değişince, hücresindeki verisi değişen satırı (A:M arası) diğer sayfaya alt alta ilk boş satıra değer olarak yedeklemek istiyorum. Amacım; geçmiş değişimleri görmek, diğer sayfayı yedekleme olarak kullanmaktır.

KNM sayfasındaki E sütunu formüllü olup, diğer hücrelere girilen değerlere göre değişmektedir. E sütunundaki hücresi değişen satırı DT sayfasına aktarmak istiyorum. E hücresindeki her değişiklikte, e hücresi değişen satırın (A:M arası) DT sayfasında alt alta ilk boş satıra değer olarak yedeklemesini istiyorum.

Saygılar
 
Katılım
27 Aralık 2010
Mesajlar
46
Excel Vers. ve Dili
Office 2010 TR 64 Bit
Merhabalar,

Örnek dosyanın indirme linki alttaki gibidir.
https://we.tl/8rEHGZghDd
Bu sistemi başka takip sistemlerime de uyarlayacağım için fikirleriniz ve kodlarınız önem arzetmektedir.

Saygılar
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
Bir sayfada her EKİPMAN için temel tanımlar bulunsun.
Diğer sayfa, hareket sayfası olsun, her hareket, temel tanımlar tekrarlanmadan SERİ NUMARASI bazında (G Sütundaki SERİ NUMARASI zannedersem benzersiz ve her araç için mevcut) kayıt edilsin.
Takibi Bu SERİ NUMARASI ve en büyük tarih bazında yapabilirsiniz.
 
Katılım
27 Aralık 2010
Mesajlar
46
Excel Vers. ve Dili
Office 2010 TR 64 Bit
Alttaki başlangıç ve bitiş kodunun arasına istenilen açıklamadaki işi yapacak kodu yazamıyorum. Yada kopya çekebileceğim benzer bir kod yok. Eğer bu konuda kod yardımlarınızı alabilirsem başka excellere de uyarlayacağım.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E2:E65536]) Is Nothing Then Exit Sub

E sütunundaki herhangi bir hücrenin verisi her değiştiğinde, verisi değişen hücrenin olduğu satırı (A:M arası) DT sayfasına değer olarak yapıştır. Değer olarak yapıştırsın çünkü taşıdığı satırda (A:M arası) formüller var.
Her hücresel değişimin olduğu satırı, DT sayfasına alt alta ve satır boş bırakmadan yapıştırmaya devam etsin. (Zaten bu değişiklik haftada bir oluyor bazen aylarca olmuyor. Amaç veri değişikliğinin geçmiş kaydını tutmak. Atıyorum, 5-10 yıl sonra seri numarasından filtreleme yapıp araç önceden nerelerdeymiş diye görmektir.) Çünkü bu hareketliliğin geçmiş kaydını alt alta bu şekilde tutabiliriz. Önceki yapıştırdığının üstüne yapıştırmasın..

End Sub
 
Katılım
27 Aralık 2010
Mesajlar
46
Excel Vers. ve Dili
Office 2010 TR 64 Bit
Sn. [U]muygun[/U]
İlgi ve alakanıza çok teşekkür ederim. Alttaki kodlar ile bir kaç excelde kullanarak işimiz görülmüştür. Çalışılan sayfaların korunması için şifre kodları ilave edilmiştir. Başka arkadaşlarımızın işine yarayabileceği düşüncesi ile alttaki gibi paylaşılmıştır.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
Application.EnableEvents = False
Set ws1 = Worksheets("KNM")
Set ws2 = Worksheets("DT")
ws1.Unprotect Password:="1234"
ws2.Unprotect Password:="1234"
If Not Intersect(Target, Range("K2:L65536")) Is Nothing Then
sat = Target.Row
Cells(sat, "n") = Cells(sat, "b") & Cells(sat, "c") & Cells(sat, "d") & Cells(sat, "e") & Cells(sat, "f") & Cells(sat, "g") & Cells(sat, "h") & Cells(sat, "ı") & Cells(sat, "j") & Cells(sat, "m")
sonn = Sheets("DT").Range("n65536").End(xlUp).Row + 1
If WorksheetFunction.CountIf(Sheets("DT").Range("n2:n" & sonn), Cells(sat, "n")) = 0 Then
sonsatir = Sheets("DT").Range("b65536").End(xlUp).Row + 1
Sheets("DT").Cells(sonsatir, 1) = sonsatir - 1
For k = 2 To 14
Sheets("DT").Cells(sonsatir, k) = Cells(sat, k)
Next k
End If
End If
Application.EnableEvents = True
ws1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, Password:="1234"
ws2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, Password:="1234"
End Sub

Saygılar
 
Üst