Soru Tek Kullanıcı Görüntüleme

Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Merhabalar.

Sütün gizleme olarak makro oluşturdum. Dosya şirkette ortak ağda. Gizlediğim sütun fiyat sütunu. Sorunum şu. Ben excel dosyasında düzenleme yaparken fiyat sütununu açıyorum ve belli süre aralıkları ile kaydet tuşuna basıyorum. Bu arada başka bir bilgisayar bu dosyaya girdiğinde gizlenen sütunu görmüş oluyor.

Bunu nasıl engelleyebilirim. Excel dosyasını sadece 1 kullanıcı görüntüleyebilmesi için bir ayar varmıdır.Yada makro olarakmı kod girmem gerekli?

Yardımlarınızı bekliyorum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
VBA yı açın (ALT + F11) "BuÇalışmaKitabı" yada "ThisWorkbook" adlı kod sayfasını açın aşağıdaki kodu kopyalayın.

Kod:
Private Sub Workbook_Open()
    Worksheets("Sayfa1").Columns("B").ColumnWidth = 0
End Sub
Dosya her yeni açılışta Sayfa1 adlı sayfanın "B" kolonu gizlenir.

Sayfa ve kolon adını kendinize göre değiştirin

Ancak Exceli az da olsa bilen biri o kolonu nasıl görebileceğini bilir.
Bu yöntem güvenli değil.
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
569
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Neden şifre koymuyor musunuz? İlla kod il yapmak istiyorsanız

C++:
If VBA.Environ("USERNAME") = "Bilgisayar kullanıcı adınız" Then
Else
MsgBox VBA.Environ("USERNAME") & " kullanıcısı açmamalısınız dosyayı."
Application.Quit
End If
Kodları Workbook Open işlevine ekleyin. Bilgisayar kullanıcı adınızı belirttiğim alana yazın sadece o kullanıcı dosyayı açabilecek.
 
Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Neden şifre koymuyor musunuz? İlla kod il yapmak istiyorsanız

C++:
If VBA.Environ("USERNAME") = "Bilgisayar kullanıcı adınız" Then
Else
MsgBox VBA.Environ("USERNAME") & " kullanıcısı açmamalısınız dosyayı."
Application.Quit
End If
Kodları Workbook Open işlevine ekleyin. Bilgisayar kullanıcı adınızı belirttiğim alana yazın sadece o kullanıcı dosyayı açabilecek.
Şifre koyarsam diğer kullanıcı, ben kapattığımda nasıl açabilecek.
 
Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Serverdan çalışıyoruz ortak ağdan. Tek kullanıcının dosyayı açmasını istemiyorum. Biri excel dosyasını açtığında exceli kullanırken diğerinin açamamasını. Yani A bilgisayarı dosyayı ortak ağda açtı kullanıyor. B kullanıcısı ortak ağdan excele gireceğinde dosyanın açılmaması. Anca A bilgisayarı dosyayı kapattığında girebilmesi.

Dediklerimiz farklı sanırım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Diğer açtığınız başlıkta talep ettiğiniz sütun kopyalama işlemide sanırım bu konuyla alakalı bir durum...

Aşağıdaki kodu dosyanızın ThisWorkbook bölümüne uygulayınız. Sonra dosyanızı Makro İçerebilen Excel Çalışma Kitabı biçimiyle kayıt ediniz.

Dosyayı siz açınız. Sonrasında başka bir kullanıcının açmasını isteyiniz. Diğer kullanıcı açtığında makro devreye girerek dosyanın onda açılmasını engelleyecektir.

C++:
Option Explicit

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Application.WindowState = xlMinimized
    If ThisWorkbook.ReadOnly Then
        ThisWorkbook.Close 0
    End If
    Application.WindowState = xlMaximized
    Application.ScreenUpdating = True
End Sub
 
Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Merhaba,

Diğer açtığınız başlıkta talep ettiğiniz sütun kopyalama işlemide sanırım bu konuyla alakalı bir durum...

Aşağıdaki kodu dosyanızın ThisWorkbook bölümüne uygulayınız. Sonra dosyanızı Makro İçerebilen Excel Çalışma Kitabı biçimiyle kayıt ediniz.

Dosyayı siz açınız. Sonrasında başka bir kullanıcının açmasını isteyiniz. Diğer kullanıcı açtığında makro devreye girerek dosyanın onda açılmasını engelleyecektir.

C++:
Option Explicit

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Application.WindowState = xlMinimized
    If ThisWorkbook.ReadOnly Then
        ThisWorkbook.Close 0
    End If
    Application.WindowState = xlMaximized
    Application.ScreenUpdating = True
End Sub
Onu başka excele aktarmak yerine bu şekilde çözmeye çalıştım.

Kodum aşağıdaki şekilde. Z'yi iptal edecektim aslında ama yanlış yerlerimi sildim bilmiyorum hata verince ellemedim artık. Sizin dediğiniz kodu "Bu çalışma kitabı" içerisinemi yapıştıracağım. Yoksa moduledeki makro içerisine mi? Her ikisinede yapıştırdım olmadı ama yada ben yapamadım sanırım

Kod:
Sub Makro1()
q = "1111"
Z = "2222"
On Error GoTo Son
ActiveSheet.Unprotect "3333"
Columns("q:x").EntireColumn.Hidden = True
Sor = InputBox("Şifre giriniz...", "UYARI ->")
If Sor = "" Then GoTo Son
If Sor = q Then
Columns("q:x").EntireColumn.Hidden = False
ElseIf Sor = c Then
Columns("z:z").EntireColumn.Hidden = False
Else
MsgBox "Hatalı şifre girdiniz.", vbCritical, "UYARI"
End If
Son:
ActiveSheet.Protect "3333"
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
BuÇalışmaKitabı bölümüne uygulamalısınız.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu önerdiğim kodun çalışması için karşı tarafın dosyayı açarken makroları etkinleştirmesi gerekir. Yoksa çok sağlıklı sonuç alamazsınız.

Ben #7 nolu mesajımda önerdiğim kodu biraz daha iyileştirdim. Belki bu haliyle daha iyi sonuç verebilir.
 
Üst