Makro yardımı

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhaba,

50 sayfalık bir çalışma kitabım mevcut.
Makro ile tüm sayfa hücrelerin klitli ve gizli ve sonrasında sayfayı şifrelemek mümkün mü?

Yardımlarınız için teşekkür ederim.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Merhaba,
Öncelikle konu başlığınızı forum kuralları gereği, soruyu özetleyecek şekilde güncelleyiniz.

Belirttiğiniz konu için ilgili kodlar.
Kod:
Sub test()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
    Sheets(i).Cells.Locked = True
    Sheets(i).Cells.FormulaHidden = True
    Sheets(i).Protect "Şifre"
Next i
Application.ScreenUpdating = True
End Sub
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
552
Excel Vers. ve Dili
Office365 TR
Deneyiniz.
Şifreyi 123456 yapar, kendinize göre değiştiriniz.
Kod:
Sub HucreleriVeSayfalariKoru()
    
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Select
        ws.Cells.Select
        Selection.Locked = TRUE
        Selection.FormulaHidden = Ture
        ws.Cells(1, 1).Select
        ws.Protect Password:="123456"
    Next ws
 
    MsgBox "İşlem tamamlandı.", vbOKOnly
    
End Sub
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Aşağıdaki kodu ThisWorkbook kod editorüne yazınız

Kod:
Option Explicit
Sub KayıtKontrol()
    Dim str As String
    Dim i As Long
    Dim No As Long
    Dim KaydıYapan As String
    Dim Say As Long
    i = 199
    str = String$(200, 0)
    No = GetUserName(str, i)
    If No <> 0 Then KaydıYapan = Left$(str, i) Else KaydıYapan = ""
    Say = WorksheetFunction.CountA(ThisWorkbook.Sheets("Sayfa1").Range("A1:A65500")) + 1
    ThisWorkbook.Sheets("Sayfa1").Range("A" & Say) = KaydıYapan
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    KayıtKontrol
End Sub
Aşağıdaki Api yi de yeni bir modül içerisine yazınız

Kod:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Bu kod Sayfa1 adlı sayfanın A sutünuna bilgisayar oturumunu açan kullanıcının adını yazar. Sayfa1 yerine başka bir sayfaya kaydedilmesini isterseniz Kodlardaki Sayfa1 i kendi sayfa isminizle değiştirin.
Sub test() Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Cells.Locked = True Sheets(i).Cells.FormulaHidden = True Sheets(i).Protect "Şifre" Next i Application.ScreenUpdating = True End Sub
Teşekkür ederim
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Deneyiniz.
Şifreyi 123456 yapar, kendinize göre değiştiriniz.
Kod:
Sub HucreleriVeSayfalariKoru()
   
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Select
        ws.Cells.Select
        Selection.Locked = TRUE
        Selection.FormulaHidden = Ture
        ws.Cells(1, 1).Select
        ws.Protect Password:="123456"
    Next ws

    MsgBox "İşlem tamamlandı.", vbOKOnly
   
End Sub
Teşekkür ederim
 
Üst