Genel Excel Sorusu Sor

Excel'in ön yüzü ile ilgili sorularınızı buradan sorabilirsiniz.

Excel Formül Sorusu Sor

Excel formülleri ile ilgili sorularınızı buradan sorabilirsiniz.

Excel Makro Sorusu Sor

Excel makroları ile ilgili sorularınızı buradan sorabilirsiniz.
  • 1 Mayıs 2022 tarihinden önce sitemizde kayıtlı bir üyeliğiniz varsa, yeni sistemine giriş yapmak için PAROLAMI UNUTTUM kısmına tıklayıp, e-posta adresinize gelen bağlantıyı kullanarak yeni parola belirlemeniz gerekmektedir.

Soru Sayfayı Makro ile Kilitleme ve Gizleme

Katılım
3 Eki 2017
Puan
610
Merhaba,

Excel Çalışma Kitabında, içinde değerli bilgiler olan bir sayfayı Makro ile Kilitlemek ve Gizlemek (şifre olmaksızın görünür olamaz) istiyorum.

Excel'in bu konuda verdiği imkan olan;

Giriş > Biçim > Gizle Göster > Sayfayı Gizle (Sayfayı Göster)

Yönteminden daha farklı ve daha güçlü bir Gizleme yöntemi ( Makro ile ) için değerli yardımlarınızı rica ederim.

Saygılarımla.
 

Sahin01

Normal Üye
Katılım
2 Ağu 2022
Puan
10,947
Aşağıdaki kodu bir butona ekleyiniz. Tıkladığınızda sizden şifre isteyecektir şifreyi girerseniz gizlemek istediğiniz sayfa görünür hale gelecektir.

Kod:
Sub Gizle_ac()
soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
If soru = 123 Then' Şifreyi burdan belirleyebilirsiniz
Sheets("Sayfa2").Visible = True ' Gizlenmek istenen sayfa
Sheets("Sayfa2").Select
Else
Exit Sub
End If
End Sub

Aşağıdaki kodu ise gizlemek istediğiniz sayfaya sağ tıklayıp "Kod Görüntüle" diyip açılan ekrana yapıştırın. Sayfadan çıktığınız anda gizlenecek.

Kod:
Private Sub Worksheet_Deactivate()
Sheets("Sayfa2").Visible = False
End Sub
 

Ömer BARAN

Forum Kurucusu
Yönetici
Katılım
11 Nis 2019
Puan
4,890
@ERMAN.SAYINALP , @Sahin01

-- Excel belgesinde en 1 adet sayfanın özelliğinin .... .Visible = True olması gerekeceğinden;
işlem için sayfa adetinin kontrol edilmesinde yarar var.

-- Sayfanın Visible özelliğiyle ilgili 3 seçenek mevcut GÖRÜNÜR/GİZLİ/ÇOK GİZLİ.
Bu seçeneklerin rakamsal karşılıkları ise aynı sırayla -1/0/2 şeklinde ve
Sheets(XXXX).Visible = -1 veya Sheets(XXXX).Visible = 0 veya Sheets(XXXX).Visible = 2 şeklinde kullanılır.

-- Gizleme sonrasında, alt tarafta sayfa adlarını gördüğünüz alanda fareyle sağ tıklayıp
GÖSTER seçeneğini seçtiğinizde göreceğiniz gizli sayfa(lar) listesinde,
gizlenen sayfanın adının görünmesini de istemiyorsanız verilen kodlardaki .... .Visible = False veya .... .Visible = 0 yerine
..... .Visible = xlSheetVeriyHidden veya ..... .Visible = 2 olarak kullanılması gerekir.

-- Önerilen/kullanılan kodlarda ..... .Select ibaresinin kullanılmasını önermiyorum.
Zira bir sayfa gizlendiğinde diğer sayfalardan biri (duruma göre gizlenen sayfanın sağındaki/solundaki/kalan tek sayfa)
kendiliğinden aktif sayfa haline gelecektir.
 

Ömer BARAN

Forum Kurucusu
Yönetici
Katılım
11 Nis 2019
Puan
4,890
@ERMAN.SAYINALP , @Sahin01

-- Excel belgesinde en 1 adet sayfanın özelliğinin .... .Visible = True olması gerekeceğinden;
işlem için sayfa adetinin kontrol edilmesinde yarar var.

-- Sayfanın Visible özelliğiyle ilgili 3 seçenek mevcut GÖRÜNÜR/GİZLİ/ÇOK GİZLİ.
Bu seçeneklerin rakamsal karşılıkları ise aynı sırayla -1/0/2 şeklinde ve
Sheets(XXXX).Visible = -1 veya Sheets(XXXX).Visible = 0 veya Sheets(XXXX).Visible = 2 şeklinde kullanılır.

-- Gizleme sonrasında, alt tarafta sayfa adlarını gördüğünüz alanda fareyle sağ tıklayıp
GÖSTER seçeneğini seçtiğinizde göreceğiniz gizli sayfa(lar) listesinde,
gizlenen sayfanın adının görünmesini de istemiyorsanız verilen kodlardaki .... .Visible = False veya .... .Visible = 0 yerine
..... .Visible = xlSheetVeriyHidden veya ..... .Visible = 2 olarak kullanılması gerekir.

-- Önerilen/kullanılan kodlarda ..... .Select ibaresinin kullanılmasını önermiyorum.
Zira bir sayfa gizlendiğinde diğer sayfalardan biri (duruma göre gizlenen sayfanın sağındaki/solundaki/kalan tek sayfa)
kendiliğinden aktif sayfa haline gelecektir.
 
Katılım
3 Eki 2017
Puan
610
Aşağıdaki kodu bir butona ekleyiniz. Tıkladığınızda sizden şifre isteyecektir şifreyi girerseniz gizlemek istediğiniz sayfa görünür hale gelecektir.

Kod:
Sub Gizle_ac()
soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
If soru = 123 Then' Şifreyi burdan belirleyebilirsiniz
Sheets("Sayfa2").Visible = True ' Gizlenmek istenen sayfa
Sheets("Sayfa2").Select
Else
Exit Sub
End If
End Sub

Aşağıdaki kodu ise gizlemek istediğiniz sayfaya sağ tıklayıp "Kod Görüntüle" diyip açılan ekrana yapıştırın. Sayfadan çıktığınız anda gizlenecek.

Kod:
Private Sub Worksheet_Deactivate()
Sheets("Sayfa2").Visible = False
End Sub
Tekrar merhaba,

Kodlama işe yaramadı, zira sayfanın gizlenmesi için değil sayfanın görünür olması için ŞİFRE'ye ihtiyaç var.

* Giriş > Biçim > Gizle Göster > Sayfayı Gizle (Sayfayı Göster) ile yada
* Sayfa Adı > Göster > "İlgili Sayfa"

yöntemiyle rahatlıkla ve şifresiz Sayfaya ulaşılabiliyor.

Oysa benim istediğim;

Makro Komutuyla, Sayfa Gizlenir olacak, GÖSTER İletişim Kutusunda görülmeyecek, Makro Komutuyla Şifre isteyerek Görünür olacak.
 
Katılım
3 Eki 2017
Puan
610
@ERMAN.SAYINALP , @Sahin01

-- Excel belgesinde en 1 adet sayfanın özelliğinin .... .Visible = True olması gerekeceğinden;
işlem için sayfa adetinin kontrol edilmesinde yarar var.

-- Sayfanın Visible özelliğiyle ilgili 3 seçenek mevcut GÖRÜNÜR/GİZLİ/ÇOK GİZLİ.
Bu seçeneklerin rakamsal karşılıkları ise aynı sırayla -1/0/2 şeklinde ve
Sheets(XXXX).Visible = -1 veya Sheets(XXXX).Visible = 0 veya Sheets(XXXX).Visible = 2 şeklinde kullanılır.

-- Gizleme sonrasında, alt tarafta sayfa adlarını gördüğünüz alanda fareyle sağ tıklayıp
GÖSTER seçeneğini seçtiğinizde göreceğiniz gizli sayfa(lar) listesinde,
gizlenen sayfanın adının görünmesini de istemiyorsanız verilen kodlardaki .... .Visible = False veya .... .Visible = 0 yerine
..... .Visible = xlSheetVeriyHidden veya ..... .Visible = 2 olarak kullanılması gerekir.

-- Önerilen/kullanılan kodlarda ..... .Select ibaresinin kullanılmasını önermiyorum.
Zira bir sayfa gizlendiğinde diğer sayfalardan biri (duruma göre gizlenen sayfanın sağındaki/solundaki/kalan tek sayfa)
kendiliğinden aktif sayfa haline gelecektir.
Ömer bey merhaba,

Esasen MAKRO Komutlarına ulaşılabilen;

Geliştirici > Makrolar > Makro (iletişim kutusu) > "İlgili" Makro >Çalıştır

Yöntemiyle, istenilen Makro kolayca çalıştırılabiliyor, Örneğin benim tüm sayfaları tek seferde Şifreli Kilitleyebilen / Şifreli Açabilen Makro'larım var ama yukarıdaki silsile ile Şifreleme/Kilitleme de anlamsızlaşıyor.

Aslolan, Makro (iletişim kutusu)'nun PASİF hale getirilmesi ve Makrolara ulaşılamaz olması (Ulaşılabilirlik sadece VBA Sayfasından olabilmeli)

Buna ilişkin bir çözümünüz olabilir mi ?

Selamlar...
 

Ömer BARAN

Forum Kurucusu
Yönetici
Katılım
11 Nis 2019
Puan
4,890
Şu kodu kullanın Sn. @ERMAN.SAYINALP .

VBA kısmını ayrıca şifrelemelisiniz. Yoksa her türlü bilgiye erişilebilir.

C#:
Sub Sayfa_Gizleme()

If Sheets("Sayfa1").Visible = -1 Then
    Sheets("Sayfa1").Visible = 2
ElseIf Sheets("Sayfa1").Visible = 2 Then
    soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
    If soru = "123" Then
        Sheets("Sayfa1").Visible = -1
    Else
        MsgBox "Hatalı şifre", vbCritical
        Exit Sub
    End If
End If

End Sub
 
Katılım
3 Eki 2017
Puan
610
Şu kodu kullanın Sn. @ERMAN.SAYINALP .

VBA kısmını ayrıca şifrelemelisiniz. Yoksa her türlü bilgiye erişilebilir.

C#:
Sub Sayfa_Gizleme()

If Sheets("Sayfa1").Visible = -1 Then
    Sheets("Sayfa1").Visible = 2
ElseIf Sheets("Sayfa1").Visible = 2 Then
    soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
    If soru = "123" Then
        Sheets("Sayfa1").Visible = -1
    Else
        MsgBox "Hatalı şifre", vbCritical
        Exit Sub
    End If
End If

End Sub
Değerli Üstad,

BUDUR !

Teşekkürler ederim.

Makro İletişim Kutusunun yada en azından Çalıştır Düğmesinin PASİF edilmesine ilişkin bir yanıtınız da olabilir mi ?
 
Katılım
3 Eki 2017
Puan
610
Sn.Ömer BARAN,

Kullandığım aşağıdaki KOD'u;

Sub Kilit ( )

For a = 1 To Sheets.Count
Sheets(a).Unprotect Password:="123" = True
Next
End Sub


Sayfa Gizleme / (Şifre şartı ile) Gösterme KOD'lamanız mantığında, ŞİFRE isteyecek şekilde çalışmasını sağlayacak bir KOD için yardımlarınızı rica edebilir miyim ?

Selamlar.
 

Ömer BARAN

Forum Kurucusu
Yönetici
Katılım
11 Nis 2019
Puan
4,890
@ERMAN.SAYINALP

Şu kodu kullanın.

C#:
Sub Tum_Sayfaları_Kilitle_Kilit_Ac()
For XD = 1 To Sheets.Count
    If Sheets(XD).ProtectContents Then
        soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
        If soru = "123" Then
geri:   If XD > Sheets.Count Then Exit Sub
            Sheets(XD).Unprotect soru
            XD = XD + 1: GoTo geri
        Else
            MsgBox "Hatalı şifre", vbCritical
            Exit Sub
        End If
    Else
        Sheets(XD).Protect Password:="123"
    End If
Next
End Sub
 
Katılım
3 Eki 2017
Puan
610
@ERMAN.SAYINALP

Şu kodu kullanın.

C#:
Sub Tum_Sayfaları_Kilitle_Kilit_Ac()
For XD = 1 To Sheets.Count
    If Sheets(XD).ProtectContents Then
        soru = Application.InputBox("Şifre Giriniz..!", "Şifre Ekranı")
        If soru = "123" Then
geri:   If XD > Sheets.Count Then Exit Sub
            Sheets(XD).Unprotect soru
            XD = XD + 1: GoTo geri
        Else
            MsgBox "Hatalı şifre", vbCritical
            Exit Sub
        End If
    Else
        Sheets(XD).Protect Password:="123"
    End If
Next
End Sub
Sn. BARAN

Zahmetinize teşekkür ederim, lakin bir kısım sorun oluştu. Şöyle ki;

* Tetikleme için BUTON oluştursam da, Ctrl+Shift+(Harf) Kısayol oluştursam da 1 kez Sayfaları Kilitliyor, 1 kez de açıyor. Sondan 1 önceki sayfada işlemini tamamlıyor.
* Diğer sayfalardaki diğer işlemler için oluşturulmuş MAKRO'ları kullanmışsam eğer, dönüp Kilitleme işlemi için atadığım Buton yada Kısayol artık hata veriyor.

1663866486766.png

Bu komutu ÇİFT amaçlı (kilitle/kilt aç) yerine, sadece KİLİT AÇ için Revize etsek daha iyi olur sanırım. Zira, tüm sayfaları Kilitlemek için

Sub Kilit ( )

For a = 1 To Sheets.Count
Sheets(a).Pprotect Password:="123" = True
Next
End Sub


kullanıyorum.

Selamlar.
 

Hazır Excel Dosyası İndir

İki Tarih Arasındaki Hafta Tatili Sayısını Bulma işlemi öğretilmektedir.
5.00 Oylama 1 İnceleme
İndirilme
4
Güncelleme
  • Öne çıkan
Formüller ile Yıllık İzin Takip Çizelgesi işlemleri yerine getirilmektedir.
5.00 Oylama 2 İnceleme
İndirilme
39
Güncelleme
Yıllık İzin Talep Formu ile çalışanlarınızın izin taleplerini oluşturabilirsiniz.
5.00 Oylama 2 İnceleme
İndirilme
6
Güncelleme
Her X Sütundaki Değerleri Toplama işlemi öğretilmektedir.
5.00 Oylama 1 İnceleme
İndirilme
8
Güncelleme
En Yakın Lokasyonu ve Uzaklığını Bulma işlemi öğretilmektedir.
5.00 Oylama 1 İnceleme
İndirilme
7
Güncelleme

Benzer İçerikler

Üst
Konuşma Başlat
Sitemiz ile ilgili tüm soru(n)larınız için hızlı iletişim kurabilirsiniz. Excel sorularınız cevaplanmayacaktır.
Ekip üyelerimizden ilk müsait olan cevap verecektir.