• DİKKAT

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

dosyanın izin verilenler dışında kullanılmaması hakkında

  • Konbuyu başlatan Konbuyu başlatan eftel
  • Başlangıç tarihi Başlangıç tarihi
Katılım
7 Ekim 2011
Mesajlar
63
Excel Vers. ve Dili
basit excell kullanıcısı
Herkese Merhaba, aşağıdaki kodu formu arştırırken gördüm, kod hardiskin D bölümünde içine 123456 yazılmış bir txt dosyası varsa excel dosyasını aç yoksa açma şeklinde biçimlendirilmiş.acaba ben bunu belirlediğim bilgisayrlarda nasıl yapabilirim kriter şu şekilde olmalı 20 tane pc var herkesin D bölümünde ismi var D:\eftel\MyDocument D:\ali\Mydocument.... .... ... gibi .
Kod:
Const strTxtFile As String = "D:\eftel\My Documents\ac.txt"
Const MyCheckVal As Long = 123456
'
Sub Auto_Open()
Dim InputData As Variant
Dim FileNum As Long
Dim x As Integer
FileNum = FreeFile
If Dir(strTxtFile) <> Empty Then
Open strTxtFile For Input As FileNum
x = x + 1
Do While Not EOF(FileNum)
Line Input #FileNum, InputData
If Left(InputData, 6) <> MyCheckVal Then GoTo NoGo:
If x = 1 Then Exit Sub
Loop
Close FileNum
ThisWorkbook.IsAddin = False
Else
NoGo:
ThisWorkbook.IsAddin = True
MsgBox "BU DOSYAYI AÇMAYA YETKİLİ DEĞİLSİNİZ", vbCritical, "UYARI"
ThisWorkbook.Close SaveChanges:=False
End If
End Sub

"D:\eftel\MyDocument\ac.txt" or " D:\ali\MyDocument \ac.txt" diye mi değiştirmem gerekiyor ?
 
Son düzenleme:
bu arada her kullanıcının bilgisyarı korumalı olduğu için 20 kadar pc kullanıcı isimleri kendilerine has. değiştirilemiyor 20 farklı kullanıcının 20 farklı mydocument i var
 
Merhaba

Bu şekilde yaparsanız kullanıcı adı sorununuz olmaz.
"C:\ac.txt"

Yok D sürücüsüne baksın derseniz kod ile kullanıcı adını alarak dosya yoluna ekleyin.

Kod:
Const strTxtFile As String = "D:\[COLOR="Blue"]Application.UserName[/COLOR]\My Documents\ac.txt"

Bu şekilde deneyin.
olmazsa önce Application.UserName okutup sonra dosya yoluna ekleyin.
 
Merhaba,

Bahsettiğiniz bilgisayarlar NetWork altında mı çalışıyor yoksa bağımsız mı.

Eğer ağda ise hem kullanıcıya göre hem bilgisayar adına göre kontrol yapabilirsiniz.
 
Uzmanamele , benim istediğim her kullanıcının değil username i xxxxx olanın kullanabilmesi örneğin kullanıcı adı "eftel" ise açılsın değilse hata versin gibi


Necdet Bey,bilgisayarlar ağda değil bağımsız bilgisayarlar, ben sadece usernameleri belirleyip usernamesi listede olmayanların kullanmaya çalıştıkları excelin açılmaması. Mutlaka bu kod üzerinden olması gerekmiyor farklı bir öneriniz varsa onuda kullanabilirim, cevaplarınız içinde teşekkür ederim. Önerilerinizi bekliyorum
 
Merhaba,

İşinizin biraz zor olduğunu düşünüyorum. Bilgisayarların ağda olmaması nedeniyle kullanıcı istediği kullanıcı adıyla bilgisayarı açabilir diye düşünüyorum, bu durumda da kontrol zor olur.

Bir dosyayı arattırmakta çözüm olmaz sonuçta o dosyayı kişiye vereceksiniz ya da adını söyleyeceksiniz, hani derler ya "söyleme sırrını dostuna, o da söyler dostuna" durumu oluşur.
 
Necdet Bey , şimdi bahsettiğim bilgisayarlarda kullanıcı yolu ve adı değiştirilemiyor örn. bana tahsis edilmiş pc de yanlızca tek kullanıcı adı oluşturulabiliyor oda kurum tarafından sınırlandırılmış pc üzerinde zaten başka kullanıcı oluşturulamıyor o bakımdan sorun yok. Şimdi diyelimki 10 adan bağımsız pc var ve 10 adet farklı kullanıcı adı sabitlenmiş pc var, ben şunu yapacam txt dosyasına şifre yazıp( örnekte 123456) kullanıcı klasörlerinin altına kaydetmelerini sağlıyacağım orda da sorun yok tek sorun bu pc lerin kullanıcı isimlerini koda nasıl dahi edebilirim. kullanıcı isimleri bende mevcut. diyecem ki D:\ahmet\mydocument\ac.txt ahmet,mehmet,cevdet,hasan......kullanıcı isimleri bunlar bende mevcut
 
Merhaba,

O zaman kullanıcı adına göre izin verebilirsiniz. Aşağıdaki kodlar ThisWorkbook'un kod bölümünde olmalı.

Private Sub Workbook_Open()

Kod:
    If Not Environ("UserName") = "necdet" And _
       Not Environ("UserName") = "mehmet" And _
       Not Environ("UserName") = "meltem" Then
        MsgBox "Yetkili Kullanıcı Değilsiniz"
        ThisWorkbook.Close savechanges:=False
    End If
       
End Sub
 
Teşekkürler Necdet bey eksik olmayın bugunde yeni birşey öğrendik sayenizde sağolun. kolay gelsin
 
Sorunsuz ve güzel bir biçimde çalışıyor ellerinize sağlık.
 
Sorunsuz ve güzel bir biçimde çalışıyor ellerinize sağlık.

Güle güle kullanınız.

Ben bu yöntemi network altında çalışan pc lerde kullanıyorum, baya da hoşuma gidiyor :)
 
Geri
Üst