• DİKKAT

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

Kullanıcı Kimliğini Öğrenme

Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Arkadaşlar,

İş yerimde network ortamında ortak kullandığımız bir excel dosyası var, doğal olarak bir kişide full diğerlerinde readonly olarak açık oluyor. Bu dosyada çalışırken ekranda hangi kullanıcının full olduğunu yazdırtabilir miyim?
Bayağı bir uğraştım bir yol bulamadım.

Konu hakkında yardımcı olabilirseniz çok sevinirim.

Teşekkürler.
 
. . .

Excel uyarıda zaten yazıyor. Bu yeterli değil mi.

do.php


. . .
 
. . .

Excel uyarıda zaten yazıyor. Bu yeterli değil mi.

do.php


. . .

Konuyu biraz açayım o zaman.

Bizim şirkette bine yakın kayıtın durumunu gösteren bir excel tablomuz var, bu tablo sürekli herkeste salt okunur olarak açık. Zaman zaman bu tabloda güncelleme ihtiyacımız oluyor, o esnada tablo üzerinde bulunan tuşlardan birine basıldığın da salt okunur olan dosya otomatik kendini kapatıp (SetAttr "........TAKİP EKRANI.xls", vbNormal) komutuyla saltokunurdan full access olarak açılıyor, kişi işlemlerini bitirdikten sonra yeniden aynı tuşa bastığında bu sefer full access olan dosya (SetAttr "........TAKİP EKRANI.xls", vbReadOnly) komutuyla saltokunur hale geliyor, eğer dosya bir başkasında açık ise (GetAttr) komutuyla dosyanın durumu kontrol edilip dosya başkasında açık mesajı ekrana geliyor.

Basitce bu şekilde ve herkeste sürekli açık bulunan bir excel çalışma dosyamız var yeniden açma olayamız pek olmadığından zaman zaman birden fazla kişi full access olmak istediğinde dosyanın kimde açık olduğunu bilemiyoruz, sadece dosya başkasında açık mesajı geliyor.

Eğer dosyanın kimde full acess açık olduğunu sorgulata bilirsem işimiz çok kolaylaşacak.
Sizinde bahsettiğiniz dosyayı sıfırdan açarken gelen ekrandaki mesajı ben VBA da yazdırta bilirsem ofiste insanların bağırarak dosya kimde açık diye sormasına gerek kalmayacak.

Biraz uzun oldu ama umarım sıkıntımı anlatabilmişimdir.
 
Son düzenleme:
Arkadaşlar konu benim için gerçekten önemli bir çözüm bulabilir miyiz?
 
Son düzenleme:
. . .

Tablonuzda gizli adında yeni bir sayfa açın. İsterseniz sayfayı gizleyebilirsiniz.

Kodları BuÇalışmaKitabı kısmına yapıştırın. Daha sonra yetkili ve salt okunur olarak deneyiniz.

Kod:
Private Sub Workbook_Open()
    If ThisWorkbook.ReadOnly = True Then
        MsgBox Sheets("Gizli").Range("A1") & Chr(10) & "Kullanıcısında Açık..."
        Exit Sub
    End If
    Sheets("Gizli").Range("A1") = Application.UserName
    ActiveWorkbook.Save
End Sub

. . .
 
Çok çok teşekkürler ben bunu düşünememiştim çözüm olacağını düşünüyorum
 
Son düzenleme:
. . .

Tablonuzda gizli adında yeni bir sayfa açın. İsterseniz sayfayı gizleyebilirsiniz.

Kodları BuÇalışmaKitabı kısmına yapıştırın. Daha sonra yetkili ve salt okunur olarak deneyiniz.

Kod:
Private Sub Workbook_Open()
    If ThisWorkbook.ReadOnly = True Then
        MsgBox Sheets("Gizli").Range("A1") & Chr(10) & "Kullanıcısında Açık..."
        Exit Sub
    End If
    Sheets("Gizli").Range("A1") = Application.UserName
    ActiveWorkbook.Save
End Sub

. . .

Malesef burada da şöye bir sorunumuz oluştu.

Kullandığımız excel tablosu sürekli herkeste salt okunur olarak açık sayfa üzerinde 2 tane buton var bunlardan biri SALT OKUNUR diğeri FULL ACCESS çeviren makro butonları buradan FULL ACCESS butonuna basınca salt okunur dosyayı kapatıp full olarak açmakta o esnada sizin vermiş olduğunuz formülle GİZLİ sayfasına kullanıcı kimliğini kaydetmekte ama diğer arkadaşlarda kayıttan önceki excel dosyası açık olduğu için GİZLİ sayfasındaki A1 hücresi boş görünüyor.ve bu yüzden dosyanın kimde FULL ACCESS olduğunu algılayamıyor.

Gene başa dönmüş olduk.
 
. . .

Salt okunur kullananlar yenileme işlemi yapabilir.
Kod:
Sub yenile()
    If ThisWorkbook.ReadOnly = True Then
        Application.DisplayAlerts = False
        Workbooks.Open (ThisWorkbook.FullName)
        Application.DisplayAlerts = True
    End If
End Sub

. . .
 
Merhaba,

Dosyayı neden paylaştırmıyorsunuz da bu kadar takla atıyorsunuz?
Paylaştırın herkes her istediği düzenlemeyi yapsın.
 
Harici bir dosyaya aktif kullanıcı kaydedilsin.
Kod:
Private Sub Workbook_Open()
    If ThisWorkbook.ReadOnly = False Then
        fname = ThisWorkbook.Path & "\aktifKullanici.txt"
        Open fname For Output Shared As #1
        Print #1, Application.UserName
        Close #1
        Exit Sub
    End If
End Sub

Aktif kullanıcıyı öğrenmek için;
Kod:
Sub kullaniciOgren()
        fname = ThisWorkbook.Path & "\aktifKullanici.txt"
        Open fname For Input As #1
        Input #1, kullanici
        MsgBox kullanici
        Close #1
        Exit Sub
End Sub
 
Kod:
ama diger arkadalarda kayıttan önceki excel dosyası açık olduğu için GİZLİ sayfasındaki A1 hücresi boş görünüyor.ve bu yüzden dosyanın kimde FULL ACCESS olduğunu algılayamıyor.

Selam,
Dosyayı fullAccess açanın ismini excel üzerine değil de bir text dosyasının içerisine yazdırsanız
ve daha sonra dosya FullAccess olarak açılmak istendiğinde bu dosyanın içindeki ismi alsanız olur gibime geliyor
 
Merhaba,

Dosyayı neden paylaştırmıyorsunuz da bu kadar takla atıyorsunuz?
Paylaştırın herkes her istediği düzenlemeyi yapsın.

Amacım elbetteki hiç kimseye sıkıntı yapmak değil, 11 yıldır bu formun bir üyesiyim fakat altın üye olmayanların forma dosya ekle olayını engelleme kuralından sonra böyle sıkıntılar olmaya başladı.

Ayrıca güzel bir kodlama olduğu kanaatindeyim forma gönderebileceğim bir yol varsa kodu göndereyim paylaşın belki başka arkadaşlarında ihtiyacını görür.
 
Son düzenleme:
. . .

Salt okunur kullananlar yenileme işlemi yapabilir.
Kod:
Sub yenile()
    If ThisWorkbook.ReadOnly = True Then
        Application.DisplayAlerts = False
        Workbooks.Open (ThisWorkbook.FullName)
        Application.DisplayAlerts = True
    End If
End Sub

. . .

Bunun çözüm olacağını düşünüyorum sizide bayağı yordum çok teşekkürler
 
Harici dosyada olabilir bu gün işlerimi bitirebilirsem bu konuyu komple çözmeye niyetindeyim.

Emeği geçen herkese çok teşekkürler.
 
Geri
Üst