Excel sayfasını kaydeden kim.

Katılım
11 Temmuz 2006
Mesajlar
36
Biz bir excel sayfasını 5 kişi ayrı zamanlarda açıp üzerine kayıt oluşturuyoruz. Acaba bizim ayrı bilgisayarlardan hangisinden açılıp da kayıt oluşturulduğunu ayı sayfa üzerine kayıt edebileceğimiz. Mesel bizim bilgisayarların harddisk nosu bilgisayar kullanıcısı adı veya herhangi bir ayırtedici değer'e bakarak hücre içersine o değerin yazıldığı macro varmıdır. Kısaca anlatmak gerekirse hangi bilgisayardan kaydedildiyse o bilgisayarın harddisk nosu falan sayfanın herhangi belirli bir hücresine kaydedilebilir mi ?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Aşağıdaki kodu ThisWorkbook kod editorüne yazınız

Kod:
Option Explicit
Sub KayıtKontrol()
    Dim str As String
    Dim i As Long
    Dim No As Long
    Dim KaydıYapan As String
    Dim Say As Long
    i = 199
    str = String$(200, 0)
    No = GetUserName(str, i)
    If No <> 0 Then KaydıYapan = Left$(str, i) Else KaydıYapan = ""
    Say = WorksheetFunction.CountA(ThisWorkbook.Sheets("Sayfa1").Range("A1:A65500")) + 1
    ThisWorkbook.Sheets("Sayfa1").Range("A" & Say) = KaydıYapan
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    KayıtKontrol
End Sub
Aşağıdaki Api yi de yeni bir modül içerisine yazınız

Kod:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Bu kod Sayfa1 adlı sayfanın A sutünuna bilgisayar oturumunu açan kullanıcının adını yazar. Sayfa1 yerine başka bir sayfaya kaydedilmesini isterseniz Kodlardaki Sayfa1 i kendi sayfa isminizle değiştirin.
 
Katılım
11 Temmuz 2006
Mesajlar
36
database adındaki sayfaya userform ile kayıt yapıyorum. Her kayıt sonrası bir alttakine kayıt yapıyor. yapılan her kaydın karşısına kim kaydetmişse birde o kullanıcı ile ilgili bilgiyi nasıl yazdırabilirim. L sütunundan itibaren yazacak
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
A&#351;ag&#305;daki kod Son olarak yazd&#305;g&#305;n&#305;z ile ilgilidir.Umar&#305;m yard&#305;mc&#305; olabilmi&#351;imdir.


Kod:
sonsat = WorksheetFunction.CountA(ActiveSheet.Range("a1:a65536")) + 1
Range("L" & sonsat).Value = Application.UserName & "-" & Date

NOT:Kim saat ka&#231;ta kaydetmi&#351; bilgisi i&#351;lenmi&#351;tir.
 
Katılım
11 Temmuz 2006
Mesajlar
36
Bu arada bununla ilgili bir sorum daha var.

Bu kodlar ile username "kullanıcı adı" kaydı oluşuyor. Bunu denedim ve oldu. Tüm yardımlarınız ve bilgilendirmeniz için teşekkürler.Şimdi yapılması gereken ise, önceden veri girişi için oluşturmuş olduğum frmparts adındaki bir userform üzerinde bulunan textbox'da username'in görüntülenmesi olacak. Bunu hangi kodlarla başarabilirim. İstediğim şu ki, bu kayıt sayfa üzerindeki satır ve sütunlara değil de tek seferde userform üzerindeki textbox üzerinde görüntülensin. Ben ordan kaydet yaptığımda veriyi satıra veya sütuna yazdıracağım. Yukarıdaki kodlar değiştirilerek bu yapılabilirmi fazla kısımlar çıkartılabilir mi ?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Oturum açan Kullanıcı adını form üzerindeki metin kutusuna yazdırmak için aşağıdaki kodları kullanabilirsiniz.

Kod:
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Function KullanıcıAdı() As String
    Dim str As String
    Dim i As Long
    Dim No As Long
    Dim KaydıYapan As String
    i = 199
    str = String$(200, 0)
    No = GetUserName(str, i)
    If No <> 0 Then KaydıYapan = Left$(str, i) Else KaydıYapan = ""
    KullanıcıAdı = KaydıYapan
End Function
Private Sub UserForm_Initialize()
    TextBox1.Text = KullanıcıAdı
End Sub
 
Üst