Girilen Sayıları kaydettirme (Log tutma)

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Üstadlar bir excel dosyam var;

1.Sekme Adı (Giriş)
2.Sekme Adı (Veri)

Giriş A1 Hücresi gün içinde sürekli değişik sayılar giriliyor(Sadece A1 hücresine yani) Sonra o girilen sayı silinip yenisi giriliyor.

Örneğin önce 9500-01
Sonra bu silindi yerine 9600-01 yazıldı.

İsteğim ise şu; Gün içinde sadece bu hücreye girilen sayı Veri A1 hücresinden aşağıya doğru sürekli kayıt tutsun. Tabi bunu yaparken girilen sayı arkasına excel kendini kayıt da etmeli ki veri kaybı yaşamayalım.

Mümkün mü?
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

"GİRİŞ" sayfası A1'e yazılanları, B1:J1 arasına kayıt eder,

"GİRİŞ" sayfası koduna ;

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim X As Byte
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
    If Not IsEmpty(Target) Then
    For X = 2 To 10 [COLOR="SeaGreen"]'(B:J[/COLOR])
    If Sheets("GİRİŞ").Cells(1, X) = "" Then
    Sheets("GİRİŞ").Cells(1, X) = Target
    Exit For
    End If
    Next
    End If
End Sub
Kod alıntıdır. (KorhanAyhan)

YADA ;

"GİRİŞ" sayfası A1'e yazılanları, B1'den sağa doğru kayıt eder,

"GİRİŞ" sayfası koduna ;

Kod:
Dim sayac
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
sayac = sayac + 1
Target.Offset(0, sayac) = Range("A1").Value
Son:
End Sub
Kod alıntıdır. (korucu16)

Kolay gelsin.
 
Son düzenleme:

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Kodlar çalışıyor ancak, aynı sayfada olması ve yanyana kayıt etmesi bana uymuyor. Ayrıca kapanınca veri kaybetmemek için excel kendini belli aralıklarla kaydetmesi lazım
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Bu durumda, foruma örnek bir dosya eklemenizi öneririm,

Çözüm sunacak arkadaşlar, ekleyeceğiniz dosya üzerinde çalışabilsinler ki doğru sonuç elde edilebilsin,

Kolay gelsin.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Merhaba,

Bu durumda, foruma örnek bir dosya eklemenizi öneririm,

Çözüm sunacak arkadaşlar, ekleyeceğiniz dosya üzerinde çalışabilsinler ki doğru sonuç elde edilebilsin,

Kolay gelsin.
Çok haklısınız Hemen Ekledim.
 

Ekli dosyalar

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Dosyanız ektedir.
Merhabalar Korhan bey,
Sadece öğrenmek için sormaktayım. Belki başka arkadaşlara da ileride kullanabilecekleri bir bilgi olur.
Örnekteki log tutma güzel bir örnek. A1 e girilen veri diğer sayfaya aktarılmakta. Biraz farklı olarak, benimse öğrenmek istediğim; örneğin eğer A1 den diyelim ki Z1 e kadar girilenler diğer sayfada alt alta nasıl kaydedileceği.

Bilgi için şimdiden teşekkürler
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Sadece
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
satırını
If Intersect(Target, Range("A1:Z1")) Is Nothing Then Exit Sub
olarak değiştirin.
 

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Sadece
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
satırını
If Intersect(Target, Range("A1:Z1")) Is Nothing Then Exit Sub
olarak değiştirin.
Sayın Askm, yanıtınız için teşekkürler, yazdığınız şekilde bende denemiştim, siz gönderdikten sonra tekrar denedim. Fakat GİrİŞ sayfasında A1 den Z1 e kadar girilen verilerden VERİ sayfasına A1 alıyor ve B1 e tarih saati ve B2ye tarih saati yazıyor. Yani GİRİŞ sayfasındaki A1 den Z1 e kadar olan verileri VERİ sayfasına almıyor. Rica etsem kontrol etmek için zamanınız var mı?
 
Son düzenleme:

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Yapmak istediğiniz A1 deki değişillikği de Z1 deki değişikliği de alt alta yazması değil mi?
A1 de yapılan değişiklik A sütununa B1 de yapılan B sütununa yazması şeklinde mi? Örnek dosya üzerinde anlatırsanız bu şekilde revize edilebilir.
 

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Yapmak istediğiniz A1 deki değişillikği de Z1 deki değişikliği de alt alta yazması değil mi?
A1 de yapılan değişiklik A sütununa B1 de yapılan B sütununa yazması şeklinde mi? Örnek dosya üzerinde anlatırsanız bu şekilde revize edilebilir.
İlginize teşekkürler,
Düşünülen işlem dosyası Ekte, detaylı açıklamayı yazdım.
Teşekkürler.
 

Ekli dosyalar

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
İstediğiniz log değil de kayıt işlemi gibi sanki.

Aşağıdaki şekilde yazarsanız. A1 den başlayıp Z1 e kadar verileri kaydedersiniz. En son Z1 e veri girişi yapınca A1:Z1 aralığı Veri sayfasına aktarır.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("Z1")) Is Nothing Then Exit Sub
    Set S1 = Sheets("Veri")
    If S1.Range("A1") = "" Then
        son = 1
        
    Else
        son = S1.Cells(S1.Rows.Count, 1).End(3).Row + 1
    End If
    Sheets("GİRİŞ").Range("A1:Z1").Copy S1.Cells(son, 1)
    ThisWorkbook.Save
End Sub
Aşağıdaki şekilde de her sütunu girdiğinizde Veri Sayfasında aynı sütunun en son sütununun altına ekler.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:Z1")) Is Nothing Then Exit Sub
    Set S1 = Sheets("Veri")
    If S1.Cells(1, Target.Column) = "" Then
        Son = 1
    Else
        Son = S1.Cells(S1.Rows.Count, Target.Column).End(3).Row + 1
    End If
    S1.Cells(Son, Target.Column) = Target
    ThisWorkbook.Save
End Sub
 

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Teşekkürler Askm,
1. kod düşündüğüm işlemi yapıyor elinize sağlık,
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Rica ederim.
 
Üst