• DİKKAT

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

macroyu 1 den fazla sayfaya uygulama

Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Slm dostlar

aşağıda yazılı makroyu tek sayfa için sıkıntısız kullanıyorum.kaydedip çıktıktan sonra data girilmiş hücreleri kilitliyor.
ama 3-4 sayfada kullanabilmem gerekli nasıl yapılır acaba
code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim SH As Worksheet
Dim rng As Range
Const PWORD As String = "ABC" '<<=== CHANGE

Set SH = Me.Sheets("Sheet1") '<<=== CHANGE

With SH
.Unprotect Password:=PWORD
On Error Resume Next
Set rng = SH.Cells.SpecialCells(xlCellTypeConstants)
On Error GoTo 0

If Not rng Is Nothing Then
.Cells.Locked = False
rng.Cells.Locked = True
.Protect Password:=PWORD
End If
End With
End Sub
 
Selamlar,

Peki çalışmanızda bu kodu uygulamamanız gereken sayfa varmı?
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim SAYFA As Worksheet
    Dim HÜCRE As Range
    
    For Each SAYFA In Worksheets
    
        With SAYFA
            .Unprotect Password:="ABC"
            
            On Error Resume Next
            Set HÜCRE = .Cells.SpecialCells(xlCellTypeConstants)
            On Error GoTo 0
            
            If Not HÜCRE Is Nothing Then
            .Cells.Locked = False
            HÜCRE.Locked = True
            .Protect Password:="ABC"
            End If
        End With
        
    Next
End Sub
 
range sınıfının lock özelliği kurulamıyor hatası aldım.
ilginize tşkkürler
 
çoklu kullanım için bir siteden şöyle birşey buldum ama entehre edemiyorum vba bilgim yok.

Sub foo()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
' Exclude certain sheets
If ws.Name <> "Sheet1" Or ws.Name <> "Sheet2" Then
' Do your thing here
End If
Next ws
End Sub
 
Selamlar,

Üstteki mesajımdaki kodu güncelledim. İncelermisiniz.
 
Slm
Korhan Bey maalesef aynı hatayı alıyorum
Yalnız şunu belirteyim ki ki dosyada sayfalar isimlendirilmiş.
Bazı sayfalardaki hücreler kilitli bazıları değil.
ayrıca bir de fatura sayfası mevcut.Eğer macro bu sayfa içinde geçerli olursa 1 fatura kestikten sonra hücreleri kilitleyeceğinden işim oldukça zorlaşacak
 
Selamlar,

Dosyanızı ekleyin. Hangi sayfalar hangi koşula göre kilitlenecek belirtin. Ona göre kodu düzenleyelim.
 
dosya

korhan bey ilginize gercekten tskkurler
fakat dosya 2 mb ı aşıyor o yüzden yükleyemedim.
başka bir yere yüklemeye çalışıp url vereceğim
 
Selamlar,

Dosyanız korumalı, şifresini verebilirmisiniz.

Not: Foruma dosya eklerken lütfen şifrelerini kaldırın.
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim SAYFA As Worksheet
    Dim HÜCRE As Range
    
    For Each SAYFA In Worksheets
    
        If SAYFA.Name = "MÜŞTERİ SATIŞ" Or SAYFA.Name = "ÜRÜN STOK GİRİŞ" Then
        
        With SAYFA
            .Unprotect Password:="ABC"
            
            On Error Resume Next
            Set HÜCRE = .Cells.SpecialCells(xlCellTypeConstants)
            On Error GoTo 0
            
            If Not HÜCRE Is Nothing Then
            .Cells.Locked = False
            HÜCRE.Locked = True
            .Protect Password:="ABC"
            End If
        End With
        
        End If
    Next
End Sub
 
tesekkurler

Korhan Bey,
Açıkçası pazar, pazar kimse uğraşmaz demiştim ama mecbur olmadığınız halde gösterdiğiniz emek ve sabır beni mahçup etti.
Kod tam olarak işimi gördü.
Ne kadar teşekkür etsem azdır.
 
Geri
Üst