Sayfa1'i yanlışlıkla yazdırırsam uyarsın

Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Geçen gün yanlışlıkla yazdırılmaması gereken yaklaşık 100 sayfayı yazıcıya gönderdim. Eğer bir daha yazmamam gereken sayfayı yanlışlıkla yazdırmaya çalışırsam uyarsın istiyorum.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
????
End Sub
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Sayfa numarlarını 1.Shettın a sutununa yaz son yazdrımak istedıgın sayfaya geç makroyu calıstır.

Sub yaz()
On Error Resume Next
'Örnek Sheets(1)'in a4 ve a7 değerlerindeki sayfa numaralarını okur
For a = 4 To 7

ActiveWindow.SelectedSheets.PrintOut From:=Sheets(1).Cells(a, 1), To:=Sheets(1).Cells(a, 1), Copies:=1, Collate:=True
Next

End Sub
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın, kemaldemir
ilginize teşekkür ederim.

Verdiğiniz makroyu çalıştıracak kadar dikkatli olsam. Yanlışlıkla yazdırma hatasına zaten düşmem. Makronun Yazdır düğmesini tıklayınca çalışmasını istiyorum.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
????
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Örneğin sayfa1'i yazdırmak istemediğinizi düşünürsek kodu aşağıdaki gibi düzenleyebilirsiniz.

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sayfa1" Then 
msgbox "hatalı sayfayı yazdırıyorsunuz, yazdırma durduruldu"
Cancel = True
end if
End Sub
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Sub Sayfayazdır()
sor = MsgBox("Yazdırma İşlemine devam etmek istiyormusunuz?", vbYesNo)
If sor = vbYes Then
Application.Dialogs(xlDialogPrint).Show
Else
End If
End Sub
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Örnek Dosyayı ınceleyınız.

Ctrl+P yapınız.


Not:Sayfa Derken ilgili Sheet'e ait Sayafalrdan mı bahsedıyorsunuz yoksa Sheets("Sayfa1") den mi.Bunu Tam olarak belirtseydınız Daha sağlıklı olurdu.
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm. Aradığım bu idi.
Benzer bir sorum daha olacak.
Yazdır komutu ile bu makroyu çalıştırdık.
Yapıştır komutu ile de bir makro çalıştırılabilir mi?

İhtiyaç şundan doğdu:
Sayfa1'de çeşitli biçimlendirmeler, açıklamalar ve Doğrulamalar var.
Yapıştırma işlemi yaparken tümünü değil otomatik olarak Değerleri'ni yapıştırsın.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yazdır komutu ile bu makroyu çalıştırdık.
Yapıştır komutu ile de bir makro çalıştırılabilir mi?

İhtiyaç şundan doğdu:
Sayfa1'de çeşitli biçimlendirmeler, açıklamalar ve Doğrulamalar var.
Yapıştırma işlemi yaparken tümünü değil otomatik olarak Değerleri'ni yapıştırsın.
Böyle bir olay (event) mevcut değil, fakat yapıştıracağınız hücreler sabit ise buna uygun bir kodlama oluşturulabilir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu sayfanın kod sayfasına kopyalayın. Seçilen hücreye kopyaladığınız hücredeki değeri kopyalar.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Then
ActiveCell.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If
End Sub
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Böyle bir olay (event) mevcut değil, fakat yapıştıracağınız hücreler sabit ise buna uygun bir kodlama oluşturulabilir.
Memurlarla ilgili bir çok ödeme evrakım var. Birçok da kullanıcısı var. Hücreler sabit değil.
Kullanıcılar personel isimlerini ve diğer kurumsal bilgilerini tek tek yazmak yerine kopyalamayı tercih ediyorlar. Bir çok açıklama ve doğrulama Tümünü yapıştır komutu ile kayboluyor.
Kullanıcılara değerlerini yapıştırmaları konusunda açıklamalar yetersiz kalıyor.
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm
Çok riskli bir kod. Kullanıcılar bu kodu kullanırlarsa proğramı berbat ederler
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aynı anda mesaj gönderince son yazdığım kodu görmemiş olabilirsiniz, bir deneyin isterseniz.
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm
İyi fikir. Zaten bütün sayfaları kısmi olarak otomatik korumalı.
Teşekkür ederim. Bunu kullanacağım.
 
Katılım
20 Eylül 2005
Mesajlar
216
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm,
Verdiğiniz kodu aşağıdaki şekilde değiştirdim. Sayfa1'in kod sayfasına yapıştırdım.
Sayfa1'de isek ve kopyalama durumunda isek, seçimi değiştirdiğimizde Özel yapıştırı kullanmamız yönünde uyarıda bulunuyor.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy And ActiveSheet.Name = "Sayfa1" Then
MsgBox "Biçimlendirmeyi bozmamak için, Düzen + Özel yapıştır + Değerlerini + Tamam şeklinde yapıştırınız. Yapıştırmaktan vazgeçmek için Esc tuşuna basın", , "Uyarı"
Cancel = True
End If
End Sub
 
Üst