makroda sayfa koruma hatası

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
397
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merahaba, Aşağıdaki kod ile secili hücreleri buton yardımı ile mail olarak gönderiyorum. Fakat sayfayı korumaya aldığımda çalışmıyor. Korumayı kaldırın diyor. Korumalı şekilde nasıl yapabilirim.

Şimdiden teşekkürler


Sub Mail_Selection_Outlook_Body()
' Don't forget to copy the function RangetoHTML in the module.
' Working in Office 2000-2010
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object

With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set rng = Nothing
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0

If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = "teoman@teoman.com"
.CC = ""
.BCC = ""
.Subject = "deneme"
.htmlBody = RangetoHTML(rng)
.Display 'or use .Send
End With
On Error GoTo 0

With Application
.EnableEvents = True
.ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodların başında korumayı kaldırın
Kod:
ActiveSheet.Unprotect "Şifreniz"
sonunda yeniden korumaya alın.
Kod:
ActiveSheet.protect "Şifreniz"
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
397
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merhaba, Konu ile ilgili olarak Sayın Muzaffer Beyin desteği ile korumalı sayfa olayı çözdüm fakat şöyle bir sorun ile karşılaştım. Koruma girerken aşağıdaki seçenekleri de seçiyorduk. makroya bunu ActiveSheet.Unprotect "Şifreniz"... eklediğimde aşağıdaki seçenekleri seçmeden sayfayı kitlediği için aşağıdaki işlemleri kullanamıyoruz. bu konuda yardımcı olabilecek biri var mı?

*Satır Ekle
*Satır Sil
*Otomatik Filtre Kullan
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Makro kaydet butonuna tıklat, sayfayı nasıl korunmasını istiyorsan o şekilde koruma yap, makroyu durdur.
Kod sayfasını açıp otomatik kaydedilen sayfa koruması kodunu kullan.

Kod:
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingRows:=True
Buna benzer bir kod satırı oluşacaktır.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
397
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer Bey
Öncelikle çok güzel anlatımınız için teşekkür ediyorum. Dediğiniz gibi yaptım ve makroyu oluşturdum. Bunu aşağıda hangi alanaya ilave etmem gerekiyor. o kısımda takıldım. yardımcı olabilir misişniz?

Oluşan Makro

"Sheets("sipariş listesi").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True"

_________________________________
Mevcut makro
Sub Mail_Selection_Outlook_Body()
ActiveSheet.Unprotect
' Don't forget to copy the function RangetoHTML in the module.
' Working in Office 2000-2010
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object

With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set rng = Nothing
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0

If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = "teoman.yigit@"
.CC = ""
.BCC = ""
.Subject = "Sipariş listesin de tarih değişikliği"
.htmlBody = RangetoHTML(rng)
.Display 'or use .Send
End With
On Error GoTo 0

With Application
.EnableEvents = True
.ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing
ActiveSheet.Protect
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bu kodlarda sayfaya müdahale yok, neden sayfa korumasını kaldırmaya ihtiyaç duyuluyor anlşamadım.

Kod:
Set OutApp = CreateObject("Outlook.Application")
bu satırın üstüne ActiveSheet.Unprotect "Şifreniz" satırını ekelyin.

End Sub satının üstüne de kendi oluşturduğunuz kodu ekleyin.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Şimdi gördüm kod oluştururken sayfa koruması şifresi girmemişsiniz.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
397
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer, çok güzel oldu çok teşekkür ederim.

Korumaya; ortak bir çalışma dosyası hazırlıyorum. onun için korumaya ihtiyacım var. Kullanıcıya özgü alan sınırlaması var.
Şifre için de dosyayı sonlandırdığımda şifreyi gireceğim. Nazik hatırlatma için de çok teşekkür ederim.
 
Üst