• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kullanıcı adı

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,454
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Arkadaşlar, sayın hocalarım, @Korhan Ayhan hocamın yapmış olduğu bir dosyayı kendi giriş dosyama uyarladım. YEDEK sayfasında BİLGİSAYAR KULLANICI adı yerine. Burada sütunda Murat GÜNAY yazıyor, zira benim bilgisayar kullanıcı adım. Burada dosyaya kim girdiyse onun adı yazması mümkün mü? Yani D sütununda kim giriş yaptıysa o yazacak. "Murat" "Polat" ... Çok denedim bozdum ama yapamadım.
Murat giriş şifresi a
Şimdiden teşekkür ederim. Saygılarımla.
 

Ekli dosyalar

Dosya Ekleme:
Forumdaki soru ve cevapları desteklemek amacıyla dosya eklenebilir. (Ücretli üyelik gerektirir.)
Dosyaların ZİP formatında sıkıştırılması ve şifresiz açılabilmesi gerekmektedir.
Konu dışı ekli dosyalar yöneticiler tarafından haber vermeksizin kaldırılabilir.
Dosyalar üyeler tarafından kontrolsüz olarak yüklenebilmektedir. Dosyalardan dolayı yaşanabilecek herhangi bir sorundan Forumumuz sorumlu tutulamaz.
 
Hocam şifreyi 1 kere açınca şifre gitti sandım. Özür dilerim.
Dosyayı değiştirdim.
 

Ekli dosyalar

Benim log tutma kodlarımı kullanmışsınız..

Bu kod yapısındaki amaç sayfada yapılan değişiklikleri maksimum seviyede listelemektir...

Siz dosya açılışındaki kullanıcı adını bir hücreye yazdırmak istiyorsanız aşağıdaki kodu kullanabilirsiniz. Sayfa1 A1 hücresine kullanıcı adını yazar..

C++:
Private Sub cmbGiris_Click()
    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True
        Sheets("Sayfa1").Range("A1") = cboKullanici.Value
        Unload Me

        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub
 
Benim log tutma kodlarımı kullanmışsınız..

Bu kod yapısındaki amaç sayfada yapılan değişiklikleri maksimum seviyede listelemektir...

Siz dosya açılışındaki kullanıcı adını bir hücreye yazdırmak istiyorsanız aşağıdaki kodu kullanabilirsiniz. Sayfa1 A1 hücresine kullanıcı adını yazar..

C++:
Private Sub cmbGiris_Click()
    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True
        Sheets("Sayfa1").Range("A1") = cboKullanici.Value
        Unload Me

        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub
Hocam, sizin kodlarınız kullandım (belirttim zaten)
Yazdığınız kod A1 sürekli değişecek. A1, A2, A3........ diye her giriş yapanı kayıt yapamaz mı?
Ya da fotoğrafta, D sütununda her girişte giriş yapan kullanıcı yazdırmak mümkün mü?
Teşekkür ederim.
Ekran görüntüsü 2024-04-18 165428.png
 
Benim log tutma kodlarımı kullanmışsınız..

Bu kod yapısındaki amaç sayfada yapılan değişiklikleri maksimum seviyede listelemektir...

Siz dosya açılışındaki kullanıcı adını bir hücreye yazdırmak istiyorsanız aşağıdaki kodu kullanabilirsiniz. Sayfa1 A1 hücresine kullanıcı adını yazar..

C++:
Private Sub cmbGiris_Click()
    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True
        Sheets("Sayfa1").Range("A1") = cboKullanici.Value
        Unload Me

        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub

Hocam sizin kodunuza ekledim yazdığınız kodu, H1'e (ben H sütununda yaptım) yazdığımı silmesin diye. H2, H3 diye altına eklesin. Döngü kurmaya çalıştım olmadı, yani ben yapamadım. Yol gösterebilir misiniz rica etsem. Hata nerede?

Private Sub cmbGiris_Click()
If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
Application.Visible = True
For i=2 to 10
Sheets("YEDEK").Range("H"&i) = cboKullanici.Value
Next
Unload Me

MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
" " & vbCrLf & _
"Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
End If
End Sub
 
Sizin kurduğunuz döngü H2:H10 hücrelerine tek seferde kullanıcı adını yazar.

Döngü yerine H sütununda ki son dolu hücrenin bir altındaki boş hücreye odaklanmanız gerekir.
 
C++:
Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim lastRow As Long
   
    Set ws = ThisWorkbook.Sheets("Sayfa2")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

    ws.Cells(1, "A").Value = "Sıra No"
    ws.Cells(1, "B").Value = "Tarih"
    ws.Cells(1, "C").Value = "Saat"
    ws.Cells(1, "D").Value = "Kullanıcı Adı"
   
    ws.Cells(lastRow, "A").Value = lastRow - 1 'Sıra
    ws.Cells(lastRow, "B").Value = Date ' Tarih
    ws.Cells(lastRow, "C").Value = Time ' Saat
    ws.Cells(lastRow, "D").Value = Environ("Username") ' Bilgisayar kullanıcı adı
    'ws.Cells(lastRow, "D").Value = Environ("Computername") & "\" & Environ("Username") ' Bilgisayar\kullanıcı adı
End Sub

251193
 
C++:
Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim lastRow As Long
 
    Set ws = ThisWorkbook.Sheets("Sayfa2")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

    ws.Cells(1, "A").Value = "Sıra No"
    ws.Cells(1, "B").Value = "Tarih"
    ws.Cells(1, "C").Value = "Saat"
    ws.Cells(1, "D").Value = "Kullanıcı Adı"
 
    ws.Cells(lastRow, "A").Value = lastRow - 1 'Sıra
    ws.Cells(lastRow, "B").Value = Date ' Tarih
    ws.Cells(lastRow, "C").Value = Time ' Saat
    ws.Cells(lastRow, "D").Value = Environ("Username") ' Bilgisayar kullanıcı adı
    'ws.Cells(lastRow, "D").Value = Environ("Computername") & "\" & Environ("Username") ' Bilgisayar\kullanıcı adı
End Sub

Ekli dosyayı görüntüle 251193

Hocam emeğinize sağlık. Sayfaları birleştirirsem. Yani sizin koddaki sütunları çıkarıp. O zaman tam olur sanırım.
 
C++:
Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim lastRow As Long
  
    Set ws = ThisWorkbook.Sheets("Sayfa2")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

    ws.Cells(1, "A").Value = "Sıra No"
    ws.Cells(1, "B").Value = "Tarih"
    ws.Cells(1, "C").Value = "Saat"
    ws.Cells(1, "D").Value = "Kullanıcı Adı"
  
    ws.Cells(lastRow, "A").Value = lastRow - 1 'Sıra
    ws.Cells(lastRow, "B").Value = Date ' Tarih
    ws.Cells(lastRow, "C").Value = Time ' Saat
    ws.Cells(lastRow, "D").Value = Environ("Username") ' Bilgisayar kullanıcı adı
    'ws.Cells(lastRow, "D").Value = Environ("Computername") & "\" & Environ("Username") ' Bilgisayar\kullanıcı adı
End Sub

Ekli dosyayı görüntüle 251193

Hocam, hangi kullanıcı ile girersem gireyim Hep "murat" yazıyor. Üstelik kullanıcı adı "murat" bile değil. Bilgisayar adı da değil. "murat"ı nereden buldu anlamadım.
Ekran görüntüsü 2024-04-19 013438.png
 
Sizin kurduğunuz döngü H2:H10 hücrelerine tek seferde kullanıcı adını yazar.

Döngü yerine H sütununda ki son dolu hücrenin bir altındaki boş hücreye odaklanmanız gerekir.

Dim SonSat As Long
SonSat = Range("H" & Rows.Count).End(xlUp).Row + 1
Cells(SonSat, "H").Select

Şeklinde değil mi hocam?
 
Dim SonSat As Long
SonSat = Range("H" & Rows.Count).End(xlUp).Row + 1
Cells(SonSat, "H").Select

Şeklinde değil mi hocam?

Evet doğrudur.. Fakat SELECT kullanmanıza gerek yok.. İlgili hücreye direkt veri yazdırma işlemi yapabilirsiniz.. Zira SELECT kodun yavaş çalışmasına sebep olmaktadır.
 
Sizin local pc kullanıcı adı murat gözüküyor. Oraya çekeceğiniz kullanıcı adı nereden alınacak? Kaynak neresi mesela?
Kaynak dosyadaki girişte kullanılan kullanıcı adı "Murat" "Polat" "Admin" Licance sayfasındaki kullanıcı adı ve şifreleri.
 
Kaynak dosyadaki girişte kullanılan kullanıcı adı "Murat" "Polat" "Admin" Licance sayfasındaki kullanıcı adı ve şifreleri.

Dosya çalışınca kaydetmesi olayı farklı, userform ile giriş işlevi farklı.
Siz userform'un giriş yaptığınız butona kayıt yapacağınız sayfanın ilgili satır/sütunu'na kayıt yaptırın. Yukarıdaki makro işinizi görmez. Kullanıcı adınada userformdaki girilen combobox değerini atayın.

***

Edit:1
Aşağıdaki kodu deneyiniz.

C++:
Private Sub cmbGiris_Click()
Dim ws As Worksheet
Dim lastRow As Long

    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True

        Set ws = ThisWorkbook.Sheets("Sayfa2") 'Log Sayfası
        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
        ws.Cells(1, "A").Value = "Sıra No"
        ws.Cells(1, "B").Value = "Tarih"
        ws.Cells(1, "C").Value = "Saat"
        ws.Cells(1, "D").Value = "Kullanıcı Adı"
        ws.Cells(lastRow, "A").Value = lastRow - 1
        ws.Cells(lastRow, "B").Value = Date
        ws.Cells(lastRow, "C").Value = Time
        ws.Cells(lastRow, "D").Value = User_Login.cboKullanici.Value

        Unload Me
        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub

Animation.gif
 

Ekli dosyalar

Son düzenleme:
Dosya çalışınca kaydetmesi olayı farklı, userform ile giriş işlevi farklı.
Siz userform'un giriş yaptığınız butona kayıt yapacağınız sayfanın ilgili satır/sütunu'na kayıt yaptırın. Yukarıdaki makro işinizi görmez. Kullanıcı adınada userformdaki girilen combobox değerini atayın.

***

Edit:1
Aşağıdaki kodu deneyiniz.

C++:
Private Sub cmbGiris_Click()
Dim ws As Worksheet
Dim lastRow As Long

    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True

        Set ws = ThisWorkbook.Sheets("Sayfa2") 'Log Sayfası
        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
        ws.Cells(1, "A").Value = "Sıra No"
        ws.Cells(1, "B").Value = "Tarih"
        ws.Cells(1, "C").Value = "Saat"
        ws.Cells(1, "D").Value = "Kullanıcı Adı"
        ws.Cells(lastRow, "A").Value = lastRow - 1
        ws.Cells(lastRow, "B").Value = Date
        ws.Cells(lastRow, "C").Value = Time
        ws.Cells(lastRow, "D").Value = User_Login.cboKullanici.Value

        Unload Me
        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub

Ekli dosyayı görüntüle 251203
Hocam çok teşekkür ederim. Emeğinize sağlık.
Korhan hocamın kodlarına entegre edemedim. 2 sayfa yaptım.
 
Evet doğrudur.. Fakat SELECT kullanmanıza gerek yok.. İlgili hücreye direkt veri yazdırma işlemi yapabilirsiniz.. Zira SELECT kodun yavaş çalışmasına sebep olmaktadır.

Hocam, kodu sizin kodunuza entegre edemedim. Sürekli H2'ye yeniden yazıyor.

Kod:
Private Sub cmbGiris_Click()
    If dogrumuKullaniciAd_Sifre(Kullanici_Giris) Then
        Application.Visible = True
        Sheets("YEDEK").Range("H2") = cboKullanici.Value
        
        Dim SonSat As Long
        SonSat = Range("H" & Rows.Count).End(xlUp).Row + 1
        Cells(SonSat, "H")
        
        Unload Me

        MsgBox "H O Ş G E L D İ N İ Z... " & vbCrLf & _
            " " & vbCrLf & _
            "Lütfen kullanıcı şifrenizi paylaşmayınız", vbInformation, "muratgunay48"
    End If
End Sub

Ben de 2 ayrı sayfa yaptım. Anca kullanışlı olmadı. Yol gösterebilir misiniz?
 
Çalışan dosyayı ek olarak ekledim zaten. İçindeki Sayfa2'ye kayıt yapıyor.
 
Geri
Üst