Kayıt başarılı olduğunda c:\kayit.xls ye bilgi kaydı

Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
ozgretmen üstadım kod harika işte budur dedirtiyor fakat 100 tane dosyaya bunları ekleyeceğim form olmadan tek bir bölüme tek bir kod halinde eklersem daha kısa sürede bitiririm tek bir kod haline getirmeme yardımcı olurmusun.
 
Katılım
22 Eylül 2006
Mesajlar
883
Excel Vers. ve Dili
Office Excel®2007®TR
ozgretmen üstadım kod harika işte budur dedirtiyor fakat 100 tane dosyaya bunları ekleyeceğim form olmadan tek bir bölüme tek bir kod halinde eklersem daha kısa sürede bitiririm tek bir kod haline getirmeme yardımcı olurmusun.
Aşağıdaki şekilde dener misin ?
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
sifre = InputBox("KAYIT İÇİN ŞİFRE GİRMELİSİNİZ", _
"Yetkili Kişi", "Kaydetmek İçin Şifre girin")
Workbooks.Open Filename:="C:\kayit.xls"
If Val(sifre) = Val(Workbooks("kayit.xls").Sheets("kayit").Range("A1").Value) Then
satir = [A65536].End(3).Row + 1
Cells(satir, "A") = Mid(Environ(5), WorksheetFunction.Find("=", Environ(5)) + 1, Len(Environ(5)))
Cells(satir, "B") = Format(Date, "d mmmm yyyy dddd")
Cells(satir, "C") = Format(Now, "hh:mm:ss")
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Kayıt işlemi tamamlandı", vbInformation, "KAYIT BAŞARILI OLDU"
Else
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Yanlış şifre girdiniz." & Chr(13) & _
"Dosya kaydedilemedi", vbCritical, "Hatalı Şifre Girdiniz"
Cancel = True
End If
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
'iyi günler öncelikle yukarıdaki yazdığım kodlarda eksiklik olmuş aşağıdaki gibi kodu denerseniz çalışır sizin belki işleminiz oldu ancak bu formu takip eden kişiler için yukarıdaki makronun çalışmasının iyi olacağı düşüncesindeyim

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpTampon As String, nsize As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nsize As Long) As Long
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
sifre = InputBox("KAYIT İÇİN ŞİFRE GİRMELİSİNİZ", _
"Yetkili Kişi", "Kaydetmek İçin Şifre girin")
If sifre = "123456" Then
ara = Chr$(9)
Dim Bilgisayar As String * 100
Dim Bilgisayar1 As Long
Bilgisayar1 = 100
GetComputerName Bilgisayar, Bilgisayar1
Dim Kullanıcı As String * 100
Dim Kullanıcı1 As Long
Kullanıcı1 = 100
GetUserName Kullanıcı, Kullanıcı1
Bilgisayar_Adi = "Bu bilgisayarın Adı :" & Left(Bilgisayar, Bilgisayar1) & " "
Kullanıcı_Oturumunun_Adı = "Kullanıcı Oturumunun Adı :" & Left(Kullanıcı, Kullanıcı1 - 1) & " "
Kullanici_Adi = "Kullanıcı adı :" & Application.UserName & " "
tarih = "Tarih :" & Format(Date, "d mmmm yyyy dddd") & " "
saat = "Saat :" & Format(Now, "hh:mm:ss")
yaz = Bilgisayar_Adi & ara & Kullanıcı_Oturumunun_Adı & ara & Kullanici_Adi & ara & tarih & ara & saat

Open ThisWorkbook.Path & "\kayit.xls" For Append As #1
Print #1, yaz
Close #1
MsgBox "Kayıt işlemi tamamlandı", vbInformation, _
"KAYIT BAŞARILI OLDU"

Else
MsgBox "Yanlış şifre girdiniz." & Chr(13) & _
"Dosya kaydedilemedi", vbCritical, "Hatalı Şifre Girdiniz"
Cancel = True
End If
End Sub
 

Ekli dosyalar

Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
ozgretmen üstad. bir sorunla karşılaştım kullandığım makine server makinası d: sürücüsü olarak bende görünüyor fakat ağda herkeze z: olarak açık bunu nasıl aşabilirim.? Birde kayıt ettiği dosyanın ismini üçüncü sütun olarak nasıl yazdırabilirim.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
bu klasör yolu problemini nasıl halledeceğim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
klasör yolu sana negibi lazım burada kayıt işlemimi yapılıcık
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Ağda herkez kullanacak bu excel dosyalarını fakat server makinası benim makinam D: ama başkaları ağdan bağlı olduğu için Z: onlara Z: görünüyor böylelikle ben ulaşırsam D:\kayit.xls yaparsam kodu ben çalıştırabiliyorum. Z:\kayit.xls yaptığımda ağdakiler ulaşibiliyor fakat ben çalıştıramıyorum bu sefer. Kayıt işlemini tam gerçekleştiremiyorum.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bilgisayarların hepsinin adı farklı değilmi
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
senin bilgisayarın adını yaz buraya Application.UserName bir formül yapalım
senin bilgisayarında d sürücüsü görsün diğerlerinde z sürücüsünü görsün
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "/Kayit/kayit.xls"

Şöyle çözüm buldum sonuçta her klasörün altında olacağına göre sanırım oldu. Fakat kayit.xls ye şifre koydum bunu nasıl aşabilirim.?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
ŞÖYLE BİR ŞEY YAPTIM OLURMU

dosyaadi = ThisWorkbook.Path & "\kayit.xls"
diğerdosya = Len(dosyaadi)
On Error Resume Next
If Application.UserName = "buraya senin bilgisayarının adını yazacaksın" Then
dosyaadi
Else
dosyaadi1 = "Z" & Mid(dosyaadi, 2, diğerdosya)
End If
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
halit3 üstadım dosya yolu konusunu çözdüm kayit.xls ye verdiğim şifreyi nasıl geçirtebilirim. ve kayıt ettiğim dosyadaki dosya ismini nasıl D sütununa yazdırabilirim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
sen dosyanın son halini bir gönder bakayım
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
aşağıdaki kodla yazmış olduğun şifreyi okutabilirsin

dosyaadi = ThisWorkbook.Path & "\kayit.xls"
Dim tel As String * 100
Open dosyaadi For Random As #1 Len = Len(tel)
Get #1, 1, tel
Close #1
MsgBox tel
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
sifre = InputBox("DİKKAT.!!! KAYIT İŞLEMİ İÇİN ŞİFRE GİRMELİSİNİZ!!!", _
"<<KAYIT ŞİFRE BÖLÜMÜ>>", "Kaydetmek İçin Lütfen Şifre giriniz.!!!")
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "/Kayit/kayit.xls"
If (sifre) = (Workbooks("kayit.xls").Sheets("Sayfa1").Range("A1").Value) Then
satir = [A65536].End(3).Row + 1
Cells(satir, "A") = Mid(Environ(5), WorksheetFunction.Find("=", Environ(5)) + 1, Len(Environ(5)))
Cells(satir, "B") = Format(Date, "d mmmm yyyy dddd")
Cells(satir, "C") = Format(Now, "hh:mm:ss")
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Kayıt işlemi tamamlandı", vbInformation, "KAYIT BAŞARILI OLDU"
Else
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Yanlış şifre girdiniz." & Chr(13) & _
"Dosya kaydedilemedi", vbCritical, "Hatalı Şifre Girdiniz"
Cancel = True
End If
End Sub

Şu haliyle gayet güzel çalışıyor fakat kayit.xls ye diyelimki şifre 111 koydum bunu nasıl geçmesini sağlayacağım sorum bu .! Ayrıca D sütununa yani kayit.xls nin D sütununa kayıt kaydet butonunu çalıştırdığım dosya nın adını yazdırmak istiyorum.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
sifre = InputBox("DİKKAT.!!! KAYIT İŞLEMİ İÇİN ŞİFRE GİRMELİSİNİZ!!!", _
"<<KAYIT ŞİFRE BÖLÜMÜ>>", "Kaydetmek İçin Lütfen Şifre giriniz.!!!")
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "/Kayit/kayit.xls", Password:="111"
If (sifre) = (Workbooks("kayit.xls").Sheets("Sayfa1").Range("A1").Value) Then
satir = [A65536].End(3).Row + 1
Cells(satir, "A") = Mid(Environ(5), WorksheetFunction.Find("=", Environ(5)) + 1, Len(Environ(5)))
Cells(satir, "B") = Format(Date, "d mmmm yyyy dddd")
Cells(satir, "C") = Format(Now, "hh:mm:ss")
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Kayıt işlemi tamamlandı", vbInformation, "KAYIT BAŞARILI OLDU"
Else
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Yanlış şifre girdiniz." & Chr(13) & _
"Dosya kaydedilemedi", vbCritical, "Hatalı Şifre Girdiniz"
Cancel = True
End If
End Sub

ŞİFREYİDE GEÇTİM bir tek çalıştığım dosyanın adının kayit.xls nin D sütununa yazılması kaldı.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Cells(satir, "D") = Replace(ThisWorkbook.Name, ".xls", "")

Onuda başardım çok tşk ederim herkeze özellikle ozgretmen ve halit3 ustalara.
 
Üst