Orijinal Olmayan Dosya Çalışmasın

Excel hakkındaki soru ya da paylaşımlarınıza kategori bulamadıysanız bu alana yazabilirsiniz.

Orijinal Olmayan Dosya Çalışmasın

İleti#1)  Barış Karaman » 10 Tem 2018 22:10

Bir Excel dosyası kopyalandığında, kopya olanı işlevsiz hale getirmenin bir yolu var mı? Kopya olanı açtığımda şu uyarıyı vermeli: "Bu dosya orijinal değil, açılamaz."
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#2)  askmadige34 » 10 Tem 2018 22:22

Dosya ismini kontrol ettirebilirsiniz. Ya sizin belirlediğiniz isimden farklı bir isimse uyarı verir Ya da başında Kopya ifadesi varsa uyarı verir.
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 13:04
Meslek: memur
Yaş: 38
İleti: 1550
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#3)  Barış Karaman » 10 Tem 2018 22:32

Cevabınız için teşekkür ederim ancak, kopya olan dosya, farklı klasörlerde veya farklı kişilerin bilgisayarlarında orijinal dosya ile aynı adı taşıyabilir. Dolayısıyla dosya adı üzerinden gidemeyiz.
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#4)  Enes Recep BAĞ » 10 Tem 2018 23:10

Barış Bey,
Eğer çalışmanız makro içeriyor ve server gibi ortak bir klasörde ise yapacağınız şey;
Workbook_Open olayına;

Kod: Tümünü seç
Private Sub Workbook_Open()
On Error Resume Next
= LCase(ThisWorkbook.Path)
If s <> "\\serveradi\klasöradı\klasöradı-2" Then
MsgBox 
"Exceli, kendi bilgisayarınıza yüklediğiniz için AÇAMAZSINIZ." & Chr(13) & _
"Şuan excelin bulunduğu klasör; " & ThisWorkbook.Path & Chr(13) & _
"Lütfen belirtilen klasörden exceli silip, ortak klasördeki exceli açarak masaüstünüze kısayol atayınız.", 64, "Kod yazmak bizim işimiz"
ActiveWindow.Close False
End If
Kullanıcı avatarı
Enes Recep BAĞ
Forum Moderatörü
 
Adı Soyadı:Enes Recep BAĞ
Kayıt: 30 Ağu 2010 17:39
Konum: 0 549 808 82 66
Meslek: Bilgi işlem
Yaş: 36
İleti: 8228
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray / Merkez

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#5)  Barış Karaman » 11 Tem 2018 17:23

Enes Bey, yardımınız için teşekkürler. Benim tam olarak demek istediğim şu: Bende bir orijinal Excel dosyası var. Bunu bir kişiye e-posta ile yolladığımı düşünelim. Bu kişi son kullanıcı olarak bu dosyayı açıp istediği değişiklikleri yapabilecek (dosyanın kodlayıcısının istekleri doğrultusunda), kaydedebilecek. Ancak,
1. Bu dosyanın kendi bilgisayarında kopyasını oluşturamayacak (oluştursa bile kopya olan dosya işlevsiz hale gelecek),
2. Başka 3. bir şahısa kopyasını herhangi bir yolla gönderse bile gönderilen kopya işlevsiz hale gelecek.
Yani kısacası dosya sadece 2. şahısta (dosyayı gönderdiğim kişide) çalışır olacak, dosyanın herhangi bir yolla elde edilen kopyası işlevsiz hale gelecek.

Ben ilk maddeyi uygulamayı aşağıdaki kodla başardım. (Ama kişinin A1 hücresini silmesini engellemeliyim).
Kod: Tümünü seç
Private Sub Workbook_Open()
If [A1] = "" Then
    [A1] = ActiveWorkbook.FullName
    ThisWorkbook.Save
ElseIf [A1] <> ActiveWorkbook.FullName Then
    ThisWorkbook.Close
End If
End Sub
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#6)  Enes Recep BAĞ » 12 Tem 2018 14:01

Anladım ama maalesef hiç bir fikrim yok.
Kullanıcı avatarı
Enes Recep BAĞ
Forum Moderatörü
 
Adı Soyadı:Enes Recep BAĞ
Kayıt: 30 Ağu 2010 17:39
Konum: 0 549 808 82 66
Meslek: Bilgi işlem
Yaş: 36
İleti: 8228
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray / Merkez

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#7)  Barış Karaman » 12 Tem 2018 18:36

Tamamen beyin fırtınası yapıyorum:

1.YÖNTEM: Dosya ilk açıldığı bilgisayara ait bazı karakteristik özellikleri ("environ(i)") döngüsü ile elde edilen bazı bilgiler olabilir) hafızaya alsa, daha sonra dosya farklı bilgisayara yüklenip açıldığında o bilgisayardaki özellikler ile hafızadaki özellikler uyuşmadığında dosyayı açmasa...
2. YÖNTEM: Dosya ilk açıldığı anda C:' de bir X adında bir dosya oluştursa, farklı bilgisayarda dosya açıldığında bu dosyayı göremediği için açılmasa. (Bu yöntemin eksi yanı C: formatlandığında dosya da silinir).

Ne dersiniz?
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#8)  askmadige34 » 12 Tem 2018 20:27

Bilgisayarın seri numarasını öğrenebilirsiniz. (HDD numarası) bu kodu gönderdiğiniz kişiye gidince bir yere kayıt yaptırabilirsiniz. Bu sayfayı sadece sizin açabileceğiniz bir sayfaya kaydedersiniz. Eğer belirttiğiniz hücre dolu ise mail ile bile gönderse silinir.
Tabiki bunun için sizin ve belirttiğiniz hücrenin içerisindeki seri numarasından farklı ise siler yoksa açıp işlem yapar.

Aşağıdaki linkde seri no öğrenme yolu mevcut.
http://www.excelvba.net/viewtopic.php?t=140
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 13:04
Meslek: memur
Yaş: 38
İleti: 1550
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#9)  Barış Karaman » 12 Tem 2018 21:13

askmadige34 yazdı:Bilgisayarın seri numarasını öğrenebilirsiniz. (HDD numarası)Aşağıdaki linkde seri no öğrenme yolu mevcut.
http://www.excelvba.net/viewtopic.php?t=140


Sayın askmadige34, öneriniz için teşekkür ederim. Dosyanın başka bilgisayarda çalışmaması için HDD seri numarasıyla işlem yapmak sanki daha mantıklı gibi.
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#10)  Barış Karaman » 12 Tem 2018 21:53

Bu işe yarayacak gibi:

Kod: Tümünü seç
Private Sub Workbook_Open()
Dim kimlik As String

kimlik = ActiveWorkbook.FullName & CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber

If [A1] = "" Then
    [A1] = kimlik
    ThisWorkbook.Save
ElseIf [A1] <> kimlik Then
    ThisWorkbook.Close
End If

kimlik = vbNullString
End Sub
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#11)  askmadige34 » 12 Tem 2018 22:49

Çok az bir değişiklik ekliyorum. Verileri ekleyeceğiniz sayfanın adı Bilgi olsun.
Sayfa ismi belirtmezseniz gönderdiğiniz kişi ilk açtığında A1 e kayıt yapar. Kişi en son farklı bir sayfa kapatırsa. Oraya bakar eğer sayfa ismi boşsa oraya da kayıt yapar. Sonuçta yaptığınız işlem anlaşılır.

Kod: Tümünü seç
Private Sub Workbook_Open()
Dim kimlik As String
Dim s1 As Worksheet
Set s1 = Sheets("Bilgi")
s1.Visible = xlSheetHidden
kimlik = ActiveWorkbook.FullName & CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber

If s1.[A1] = "" Then
    s1.[A1] = kimlik
    ThisWorkbook.Save
ElseIf s1.[A1] <> kimlik Then
    ThisWorkbook.Close
End If

kimlik = vbNullString
End Sub
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 13:04
Meslek: memur
Yaş: 38
İleti: 1550
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#12)  youngman_2 » 13 Tem 2018 12:33

şu şekilde de bir deneyin isterseniz
önce dah önce kayıt yapılmışmı kontrol ettirin
yapılmadı ise
1=ilk açılışta pc adı-yolunu veya hdd seri nosunu herhangi bir hücreye kaydedin
2=daha sonra bu hücreyi şifreli sayfa koruması yapın kaydettirin

yapıldı ise
1=ilk açılışta pc adı-yolunu veya hdd seri nosunu ,kaydettirdiğiniz hücre ile karşılaştırın
dogru ise sorun yok
dogru değil ise =otomatik kapatsın belgeyi


bu işlemden sonra dosyayı başka pc ye yollasa bile kayıtlı belge oldugu için karşılaştırmada hata vereceği için çalışmayacaktır.
tabi siz karşı tarafa ilk belge yollarken kayıtsın belge yollacaksınız ve vba editörünede şifre koymayı unutmayın.
umarım işinize yarar
Kullanıcı avatarı
youngman_2
 
Kayıt: 13 Tem 2018 12:11
Meslek: elektrik mühendisi
Yaş: 30
İleti: 1
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: DENİZLİ

Cevap: Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#13)  Barış Karaman » 13 Tem 2018 21:51

askmadige34 yazdı:Çok az bir değişiklik ekliyorum. Verileri ekleyeceğiniz sayfanın adı Bilgi olsun.
Sayfa ismi belirtmezseniz gönderdiğiniz kişi ilk açtığında A1 e kayıt yapar. Kişi en son farklı bir sayfa kapatırsa. Oraya bakar eğer sayfa ismi boşsa oraya da kayıt yapar. Sonuçta yaptığınız işlem işlem anlaşılır.

Sayın askmadige34, haklısınız. Ben de A1 i sembolik olarak yazdım zaten. Kimliği belirli sayfanın belirli hücresine yazmam gerekiyor. Sayfayı da getekirse xlVeryHidden ile korumam gerekiyor. Bu arada aklıma takıldı, her bilgisayarın C: seri numarası mutlaka bir birinden farklıdır değil mi?
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#14)  askmadige34 » 13 Tem 2018 22:12

Yazdığım kodlarda gizleme olayını da yaptım. Evet seri numaraları farklıdır.
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 13:04
Meslek: memur
Yaş: 38
İleti: 1550
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Orijinal Olmayan Dosya Çalışmasın

İleti#15)  Barış Karaman » 13 Tem 2018 22:16

Teşekkür ederim. Konu benim açımdan çözülmüştür. Amacıma ulaştım. [oley]
Kullanıcı avatarı
Barış Karaman
Siteye Alışmış
 
Adı Soyadı:Barış Karaman
Kayıt: 02 Şub 2014 02:46
Konum: Bilecik
Meslek: Öğretmen
Yaş: 38
İleti: 258
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Zeytinburnu


Forum Diğer Excel İşlemleri

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron
Bumerang - Yazarkafe