Windows Kullanıcı Girişlerini Kaydet - Microsoft Excel


Çalışma kitabı açıldığında, çalışma kitabını açan Microsoft Windows kullanıcısının ismini ve açılış tarihini "Kullanıcı Girişleri" adlı bir sayfaya kaydeder. Sayfa yoksa oluşturduktan sonra kayıt işlemini yapar.

Kod


Option Explicit

Sub Auto_Open()
    KullaniciGirisiKaydet
End Sub

Sub KullaniciGirisiKaydet()
    Dim kontrol As Boolean
    Dim sayfa As Worksheet
    Dim sonDoluSatir As Long
    Dim bosSatir As Long
    
    '--------------------------------------------------
    'Eğer yoksa sayfa oluştur, varsa seç.
    '--------------------------------------------------
    For Each sayfa In Worksheets
        If (sayfa.Name <> "Kullanıcı Girişleri") Then
            kontrol = False
        Else
            kontrol = True
        End If
    Next
    
    If (kontrol = True) Then
        Sheets.Add
        ActiveSheet.Name = "Kullanıcı Girişleri"
        
        ActiveSheet.Range("A1") = "Kullanıcı"
        ActiveSheet.Range("B1") = "Giriş Tarihi"
    Else
        Worksheets("Kullanıcı Girişleri").Select
    End If
    
    '--------------------------------------------------
    'Kullanıcı girişini kaydet.
    '--------------------------------------------------
    sonDoluSatir = Range("A1048576").End(xlUp).Row
    bosSatir = sonDoluSatir + 1
    
    Range("A" & bosSatir) = Application.UserName
    Range("B" & bosSatir) = DateTime.Now
    
    '--------------------------------------------------
    'Sütunları yeniden boyutlandır.
    '--------------------------------------------------
    Columns("A:B").EntireColumn.AutoFit
End Sub

Kod (Açıklamalı)


Option Explicit

'--------------------------------------------------
'Auto_Open özel yordamıyla çalışma kitabı her
'açıldığında kullanıcı girişi bilgilerinin
'kaydedilmesini sağlıyoruz.
'--------------------------------------------------
Sub Auto_Open()
    KullaniciGirisiKaydet
End Sub

Sub KullaniciGirisiKaydet()
    '--------------------------------------------------
    'Kayıt işlemi "Kullanıcı Girişleri" isimli bir
    'sayfaya yapılacak. Bu sayfanın olup olmadığı
    'kontrol edildikten sonra elde edilen sonuç
    'bu değişkene aktarılıyor.
    Dim kontrol      As Boolean
    
    '--------------------------------------------------
    'Çalışma kitabındaki sayfaların isimlerini
    'döngü aracılığıyla dinamik olarak kontrol
    'etmek için değişken kullanılıyor. İlgili
    'çalışma sayfası, "sayfa" değişkenine
    'atanıyor, işlemler bu değişken üzerinden
    'yapılıyor.
    '--------------------------------------------------
    Dim sayfa        As Worksheet
    
    '--------------------------------------------------
    '"Kullanıcı Girişleri" sayfasındaki tabloda
    'son dolu satırı bulduktan sonra elde edilen
    'sonuç bu değişkene aktarılıyor.
    '
    '(Çalışma kitabını açan kullanıcının ismi ve
    'açılış tarihi olmak üzere iki sütunlu bir
    'tablo gibi düşünülebilir.)
    Dim sonDoluSatir As Long
    
    '--------------------------------------------------
    'Son dolu satırı bulduktan sonraki ilk boş satırı
    'da bu değişkene aktarılan sonuç üzerinden takip
    'ediyoruz.
    '--------------------------------------------------
    Dim bosSatir     As Long
    
    '--------------------------------------------------
    'Eğer yoksa sayfa oluştur, varsa seç.
    '--------------------------------------------------
    For Each sayfa In Worksheets
        If (sayfa.Name <> "Kullanıcı Girişleri") Then
            kontrol = False
        Else
            kontrol = True
        End If
    Next
    
    '--------------------------------------------------
    'Eğer kontrol mantıksal değişkenimizin değeri
    'True ise sayfa yok demektir, o halde istenilen
    'isimde bir çalışma sayfası oluştur.
    '--------------------------------------------------
    If (kontrol = True) Then
        
        '--------------------------------------------------
        'Yeni bir çalışma sayfası oluştur.
        '--------------------------------------------------
        Sheets.Add
        
        '--------------------------------------------------
        'Oluşturulan çalışma sayfasına isim ver.
        '--------------------------------------------------
        ActiveSheet.Name = "Kullanıcı Girişleri"
        
        '--------------------------------------------------
        'Sütun başlıklarını gir.
        '--------------------------------------------------
        ActiveSheet.Range("A1") = "Kullanıcı"
        ActiveSheet.Range("B1") = "Giriş Tarihi"
    Else
        '--------------------------------------------------
        'Eğer sayfa varsa o sayfayı seç.
        '--------------------------------------------------
        Worksheets("Kullanıcı Girişleri").Select
    End If
    
    '--------------------------------------------------
    'Tabloda A sütunundaki en son dolu satırı bul.
    'Buradaki durum da şu: A sütunu da B sütunu da
    'doldurulduğundan dolayı iki sütunun da son dolu
    'satırı aynı satır değeri oluyor. Aynı işlemi
    'B sütunu için de yapsak olurdu.
    '--------------------------------------------------
    sonDoluSatir = Range("A1048576").End(xlUp).Row
    
    '--------------------------------------------------
    'Eğer son dolu satırdan sonraki ilk satırı seçersek
    'tablonun sonundaki ilk boş satırı bulmuş oluruz.
    '--------------------------------------------------
    bosSatir = sonDoluSatir + 1
    
    '--------------------------------------------------
    'Boş satıra yeni kullanıcı girişi
    'bilgilerini kaydet.
    '--------------------------------------------------
    Range("A" & bosSatir) = Application.UserName
    Range("B" & bosSatir) = DateTime.Now
    
    '--------------------------------------------------
    'Sütunları yeniden boyutlandır.
    'Böylelikle olası taşmalar düzeltilmiş olacak
    've verilerin okunması ile ilgili olası
    'problemler ortadan kaldırılmış olacak.
    '--------------------------------------------------
    Columns("A:B").EntireColumn.AutoFit
End Sub

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba