Soru Belirli Seri No'ya Sahip Pclerin Dosyayı Açabilmesi

Erdogan3434

Altın Üye
Katılım
14 Ocak 2022
Mesajlar
78
Excel Vers. ve Dili
Office 2013 Professional, Türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Merhaba Değerli Hocalarım,

Bir konuda fikir almak istiyorum. Mevcutta bulunan bir excel raporunu sadece önceden seri numarasını belirlediğim listede olan 10 pc dışında hiçbir pc de açılmaması istiyorum. Bunu sağlamanın bir yolu var mıdır?

Saygılarımla,
 
Katılım
6 Mart 2024
Mesajlar
59
Excel Vers. ve Dili
Excel 2013 TR & Excel 2016 TR
Merhaba,

Kurgu:

Excel Kitabına KARSILAMA isminde bir sayfa eklenecek (Manuel olarak)

1. durum (Kitap açılışta)

yetkisiz bilgisayar Kitabı açtığında
KARSILAMA sayfası hariç tüm sayfalar gizli zaten
Kitap ve KARSILAMA sayfası koruma Yap

2. durum (Kitap açılışta)
Yetkili biri Kitabı açtığında
Kitap ve KARSILAMA sayfası korumayı Aç
Tüm sayfalar görünür yapılacak
KARSILAMA sayfası gizlenecek

3. durum (Kitap kapanışta)
Kitap ve KARSILAMA sayfası korumayı kaldır
KARSILAMA sayfası hariç tüm sayfalar gizlenecek
Kitap ve KARSILAMA sayfası koruma Yap
Kitap kayıt edilecek (Kaydet)

4. Gerekli ayar

VBAProject Properties... den VBA kodlarının ŞİFRELENİP GİZLENMESİ gerek

5. Aşılamayacak bir engel değil .... ( çok önemli bilgiler için önerilmez )

C++:
Option Explicit

Public izinVerilenSerialler As Variant
Public Korumalar As String
Public KarsilamaSayfasi As String

Private Sub Workbook_Open()
    'Biolight 2024 - Eppur Si Muove

    ' PROJENİZE UYGUN DEĞİŞİKLİKLERİ YAPINIZ
    ' SERİ NUMARAlarını, ilk sayfa İSMİ ve koruma PAROLAsını tanımlayınız
    izinVerilenSerialler = Array("012", "345", "678", "901") ' Yetkiye sahip bilgisayar SERIALLERi
    KarsilamaSayfasi = "KARSILAMA" ' Yetkisiz bilgisayarları karşılayacak sayfa İSMİ
    Korumalar = "biolight" ' Kitap ve KarsilamaSayfasi koruma PAROLAsı
 
    ' 1. ilk kaydedip kapatmada hata verecek End tıklayıp Kaydedeyim mi diye soracak EVET tıklayın
    ' 2. ikinci açılışta gizlenmesi gereken sayfalar açıkta olacak HATALI GÖRÜNTÜ dosyayı kapatın
    ' 3. üçüncü açılışta herşey rütine girecek problemsiz çalışması gerek
    ' 4. dördüncü VBAProject Properties... den VBA kodlarının ŞİFRELENİP GİZLENMESİni unutmayın
 
    ''''''''''''''''''''''''''''''
    ' DİKKAT !!!
    ''''''''''''''''''''''''''''''
    ' Gerekli ayar ve kontroller yapıldıktan sonra
    ' VBAProject Properties... den VBA kodlarının ŞİFRELENİP GİZLENMESİ gerek
    ''''''''''''''''''''''''''''''

    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim strComputer As String
    Dim serialNumber As String
    Dim i As Integer
    Dim bulundu As Boolean
    Dim ws As Worksheet
 
    '''''''''''''''''''''''''
    ' GPT-4.0
    '''''''''''''''''''''''''
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS", , 48)

    For Each objItem In colItems
        serialNumber = objItem.serialNumber
    Next
    '''''''''''''''''''''''''

    bulundu = False

    ' Dizi içinde seri numarasını kontrol et
    For i = LBound(izinVerilenSerialler) To UBound(izinVerilenSerialler)
        If serialNumber = izinVerilenSerialler(i) Then
            bulundu = True
            Exit For
        End If
    Next i

    If bulundu Then
        KitapSayfaKorumaAc Korumalar

        ' Tüm sayfaları görünür yap
        For Each ws In ActiveWorkbook.Worksheets
            ws.Visible = xlSheetVisible
        Next

        ' Karsilama sayfasını gizle
        Worksheets(KarsilamaSayfasi).Visible = xlSheetVeryHidden
     
        MsgBox "Hoşgeldiniz: " & serialNumber
    Else
        KitapSayfaKorumaYap Korumalar
        MsgBox "Erişim Reddedildi: " & serialNumber
    End If

    ' Temizleme
    Set colItems = Nothing
    Set objWMIService = Nothing
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ws As Worksheet

    KitapSayfaKorumaAc Korumalar

    ' KarsilamaSayfasi görünür yap
    Worksheets(KarsilamaSayfasi).Visible = xlSheetVisible

    ' KarsilamaSayfasi hariç Tüm sayfaları gizli yap
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> KarsilamaSayfasi Then ' KarsilamaSayfasi hariç
            ws.Visible = xlSheetVeryHidden ' gizle
        End If
    Next

    KitapSayfaKorumaYap Korumalar

    ' Malesef Kaydetmek Zorunlu
    ThisWorkbook.Save

End Sub

Private Sub KitapSayfaKorumaYap(Parola As Variant)
    ' Çalışma kitabını koruma altına al (yapı ve pencere ayarlarını korur)
    ActiveWorkbook.Protect Password:=Parola, Structure:=True, Windows:=True

    ' Karsilama sayfasını koruma altına al (çizim nesneleri, içerik ve senaryolar dahil)
    Worksheets(KarsilamaSayfasi).Protect Password:=Parola, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Private Sub KitapSayfaKorumaAc(Parola As Variant)
    ' Çalışma kitabının korunmasını kaldır
    ActiveWorkbook.Unprotect Password:=Parola

    ' Karsilama sayfasının korunmasını kaldır
    Worksheets(KarsilamaSayfasi).Unprotect Password:=Parola
End Sub
 
Son düzenleme:

Erdogan3434

Altın Üye
Katılım
14 Ocak 2022
Mesajlar
78
Excel Vers. ve Dili
Office 2013 Professional, Türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Çok teşekkür ederim. Elinize sağlık.
 

Erdogan3434

Altın Üye
Katılım
14 Ocak 2022
Mesajlar
78
Excel Vers. ve Dili
Office 2013 Professional, Türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Hocam son bir soru soracağım. Eğer makro engelleyici varsa excelin açılması engellenebilir mi?
 
Katılım
2 Temmuz 2014
Mesajlar
130
Excel Vers. ve Dili
2021 Türkçe, 64bit
Hocam son bir soru soracağım. Eğer makro engelleyici varsa excelin açılması engellenebilir mi?
bildiğim kadarıyla excelin kendisi şifreli değilse -excel dosyasını açmak için şifre ister bu oldukça iyi bir koruma sağlar- makro engelleyicisi açıksa sadece makrolar engellenir verilere rahatlıkla erişilebilir.
vba ya eklenen kod korumasını kırmak ise çok kolaydır
 

Erdogan3434

Altın Üye
Katılım
14 Ocak 2022
Mesajlar
78
Excel Vers. ve Dili
Office 2013 Professional, Türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Makro çalışmasa bile SİZ Kitap ı oluşturup kapatırken önce
Kitap koruma ve Sayfa koruması yapılıp Kaydedildiği için verilere erişilemiyecek.
Desteğiniz için çok teşekkür ederim.
 
Üst