Çözüldü Bir Sayfadaki Verileri Değiştirme Yada Görüntüleme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

sepulastura

Normal Üye

Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
merhabalar

bir pc üstünde paylaşımlı bir klasör içerisinde bulunan bir excel dosyam mevcut.

bu dosyaya farklı pc lerden erişim sağlayan kullanıcılar var.

bu dosya ilk açılırken dosyayı açan kişinin computername ve username bilgilerini "dosya kimde açık" sheetinde a2 ve b2 hücrelerine yazdıran bir makro kod vardır. örnekteki dosyada bu kod düzeneği mevcut.

birde "yetki" diye bir sheetim olup bu sheette bir sürü veri mevcuttur.

sorum şu şekilde bu yetki sayfasındaki verileri bazı kullanıcılar her tür yetkiye sahip olsun değiştirebilsin isityorum bazı kullanıcılar ise sadece görüntülesin istiyorum değişiklik yapamasın.

bu ortak alandaki dosyayı birisi açınca eğer A2 hücresine "N704", "N687" ve "AKN5612" kullanıcısı yazmışsa yetki sheetinde tam yetkisi olsun
bunun dışında bir veri yazıyorsa yetki sheetinde hiç bir işlem yapamasın sadece görüntülesin.

konuyla ilgili bilgi ve yardımlarınızı rica ederim

örnek dosya aşağıdaki linktedir.

İndir ornekdosya rar
 

Ekli dosyalar

  • ornekdosya.rar
    14.3 KB · Görüntüleme: 4
Çözüm
Üstadım bahsi geçen yetki kodlarını disable ettiğimde o veri getirme durumu çalışıyor. sizin söylediğiniz üstünde biraz düşündüm ve bende şöyle bir çözüm buldum.

yetki kodu thisworkbook sayfasının vba düzeneğinde open_workbook sub ı altındaydı ya. oradan aldım. sayfa koruması olacak yetki sayfasının içerisine worksheet_activate sub ı altına yerleştirdim. böylelik bu sayfa seçildiğinde kod işleme girecek ve tanımlı kullanıcılar tam yetkisi varken tanımlı olmayanlar ise sadece görüntüleyecek

worksheet_deactivate koduylada diğer kullanıcılarada bu sayfada izin verince problem çözülmüş oldu. zira başka sayfaya geçince yetkisi olmayan kullanıcılara o sayfada tam yetkiyi verdim. halbuki o sayfada değiller ama yinede tam yetkiye sahip...
merhaba

Örneğin aşağıdaki kod düzeneğini ilgili sayfanın vba düzeneğinde sayfa koruma işlevini yerine getiriyor. o sayfada hiç bir işlem yaptırmıyor.

ben bu kodu "dosya kimde açık" sheetinde a2 hücresinde bulunan veriye göre çalışıp çalışmama durumunu ayarlamak isterim.

eğer A2 hücresine "N704", "N687" ve "AKN5612" verisi varsa aşağıdaki kodun bulunduğu sheetteki macro çalışmasın sheetinde tam yetkisi olsun. Eğer bu veriler dışında bir veri varsa aşağıdaki makro devrede olup herhangi bir veri girişine izin vermesin


Kod:
Görüntülemek için giriş yapmalısınız.
(13 satır)


Ben bu kodun başına şu kodu yazarak revize ettim fakat hata alıyorum. burdan sonrasında ilerleyemiyorum.
If Sheets("dosya kimde açık").Range("a2") = "N704" Or Sheets("dosya kimde açık").Range("a2") = "N687" Or Sheets("dosya kimde açık").Range("a2") = "b" Then
Exit Sub



Kod:
Görüntülemek için giriş yapmalısınız.
(15 satır)
 
Aşağıdaki kodu "Thisworkbook" (BuÇalışmaKitabı) kod editörüne yazınız.

VBA:
Görüntülemek için giriş yapmalısınız.
(32 satır)
 
MErhaba Feyzullah Bey

Benim Thisworkbook sayfaya ait vba kod düzeneğinde aşağıdaki kodlama mevcut. en sondaki Call kodlarıyla farklı makroları çağırıyorum çok önemli değil onlar şimdilik.

Fakat ben kendi kod düzeneğimi pasife alıp sizin kod düzeneğini Thisworkbook kod düzeneğinde deneyince sadece yine aşağıdaki kod düzeneğimde varolan kullanıcı adı ve bilgisayar ismini getiriyor. sizin gönderdiğiniz kod düzeneğinde hangi sayfada hücrelere kilit işlevini getiriyor acaba. yani sorgulamayı yapıp eğer hücre içeriğinde N704 N687 ve AKN5612 yazmıyorsa yetki sheetinde hiç bir düzenleme yapmamam gerekiyor. eğer bu veriler yazıyorsa yapmam gerekiyor. fakat ilettiğiniz kodda o sheete ait bir tanımlama yok sanki dolayısıyla o shetti seçtiğimde her türlü işlemi yapabiliyorum yine.

bilgi ve yardımlarınızı rica ederim

Kod:
Görüntülemek için giriş yapmalısınız.
(24 satır)
 
Hocam paylaşmış olduğum kodları ya tam incelemediniz. yada ben yanlış anlıyorum konuyu halen.

Paylaştığım kodun 4.satırı olması gerek orada dosyayı tam yetki kullanabilecek oturum isimleri yazıyor. Eğer bu kişiler oturum açmamış ise tüm sayfalar ve tüm hücreler kirleniyor.
 
Üstadım hayır tüm sayfalar kilitlenmeyecek. Sadece yetki sayfası kilitlenecek. yetki sayfasında işlem yapılmayacak. yukarıda aslında böyle olması gerektiğini anlatmıştım ama tam izah edemedim sanırım.

gönderdiğim örnek dosyada dosya kimde açık sheeti var bir de yetki sheeti var. tabi bu örnek dosya bu sheetler dışında bir çok sheet var. ben sadece yetki sheetinde veri girişini engellemek istiyorum. ama tabi belirlediğim kullanıcılar dosyayı açmışsa ki bu dosyayı açan kişi kontrolünüde dosya kimde açık sheetinde belirliyorum.

ekte yine örnek dosya yolladım o dosya üstünde gerekli açıklamayı görebilirsiniz

bilgi ve yardımlarınızı rica ederim
 

Ekli dosyalar

  • ornekdosya.xlsm
    20.3 KB · Görüntüleme: 6
Üstadım Merhaba

Bu kodda ufak bir bug söz konusu oldu.

Hani hatırlarsanız bir önceki konumdada yardımcı olmuştunuz

bu konuda bulunan TT SİM KARTLAR sheetim vardı. 10.10.10.10 ve 20.20.20.20 sheetinde H sütununda girilen veriye göre karşılık değerlerini getiriyordu.

işte ben bu ikinci konumuzda bazı kişilere bu sheeti etkisiz hale getirdim bazı kişilere açmış bulundum.

Sorun şu.

eğer kısıtladığım bir kullanıcı dosyayı açmış ise ve 10.10.10.10 veya 20.20.20.20 sheetinde H sütununa gereken veriyi yazarsa TT SİM KARTLAR sheetinde bulunan bu yazılmış verinin karşılığını getirmiyor.

Örneğin dosyayı AKN5612 açmışsa TT SİM KARTLAR da tam yetkiye sahip olduğu için diğer iki shette veri girişi yaparsa karşılıklarını getiriyor.

bu konuda ne yapabiliriz acaba bilgilerinizi ve yardımlarınızı rica ederim
 
eğer kısıtladığım bir kullanıcı dosyayı açmış ise ve 10.10.10.10 veya 20.20.20.20 sheetinde H sütununa gereken veriyi yazarsa TT SİM KARTLAR sheetinde bulunan bu yazılmış verinin karşılığını getirmiyor.

Sayfa korumalı da olsa veriyi çekmesi gerekiyor. Başa bir sıkıntı var bence ama ben yinede bir kod önerisinde bulunayım veri çeken kodların başına sayfa koruması kaldıran kodu ekleriz, veri çekildikten sonra dosyayı geri korumaya alırsınız.


VBA:
Görüntülemek için giriş yapmalısınız.
(13 satır)
 
Üstadım bahsi geçen yetki kodlarını disable ettiğimde o veri getirme durumu çalışıyor. sizin söylediğiniz üstünde biraz düşündüm ve bende şöyle bir çözüm buldum.

yetki kodu thisworkbook sayfasının vba düzeneğinde open_workbook sub ı altındaydı ya. oradan aldım. sayfa koruması olacak yetki sayfasının içerisine worksheet_activate sub ı altına yerleştirdim. böylelik bu sayfa seçildiğinde kod işleme girecek ve tanımlı kullanıcılar tam yetkisi varken tanımlı olmayanlar ise sadece görüntüleyecek

worksheet_deactivate koduylada diğer kullanıcılarada bu sayfada izin verince problem çözülmüş oldu. zira başka sayfaya geçince yetkisi olmayan kullanıcılara o sayfada tam yetkiyi verdim. halbuki o sayfada değiller ama yinede tam yetkiye sahip gibiler. böylelikle diğer makro kodumda gsm numarasını yazınca gelen veriler çalışmaya başladı :)

Çok Teşekkür ederim ilginiz ve desteğiniz için.

Kod:
Görüntülemek için giriş yapmalısınız.
(25 satır)
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
11
Geri
Üst