degeri bos olan ama icinde formul olan hucreleri baskidan haric tutmak

Katılım
17 Haziran 2008
Mesajlar
36
Excel Vers. ve Dili
Office 2007 Eng
A kolonunda B kolonuna bagli bir formul koydum, soyleki, B kolonunda herhangi bir deger varsa A kolonuna sirali numara veriyor. boylelikle her satirin basinda satir numarasi gibi numara oluyor.

problem su: baski almak istedigimde A kolununda herhangi bir numara olmamasina ragmen formul oldugu icin sayfalarca bos sayfa bastirmak istiyor. Sadece degerlerin oldugu araligi bastirmam icin (yani otomatik numara verilan son satira kadar) ne yapmam gerekiyor?

son satirin son hucresine bir deger girdigimde takip eden satirin ilk hucresine formulu (ayni sutunun onceki hucresinden) otomatik olarak girmesi icin ugrastim ama yapamadim tabii.

tesekkurler
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları ve dosyayı inceleyiniz.

Kod:
Sub Macro1()
ActiveSheet.PageSetup.PrintArea = "$A$1:$B" & [B65536].End(3).Row
End Sub
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
Tekrar Merhaba,

Araştırınca insan neler buluyor. Başlığın 1. satırda olduğunu düşünürsek Değişken olarak yazdırma alanını bulmak kolay.

Kod:
Sub YazdirmaAlani()
Kol = [IV1].End(1).Column
Sat = [B65536].End(3).Row
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, "A"), Cells(Sat, Kol)).Address
End Sub
 

Ekli dosyalar

Katılım
17 Haziran 2008
Mesajlar
36
Excel Vers. ve Dili
Office 2007 Eng
her iki makro da tam istedigim sekilde isi hallediyor. gercekten de cok iyi. sizde bir sey daha sormak istiyorum; print butonunu disable edip (araccubugundan ve file menusunden) hazirladiginiz butona tiklayinca alani belirleyip printbox diyalogunu getirmesi icin ugrastim, print komutunu disable ediyor ama bu defa makrodakini de disable ediyor. su uc makroyu/kodu hangi sirayla nereye koymam gerekiyor, soyleyebilirmisiniz?
tesekkurler


Sub Macro1()
ActiveSheet.PageSetup.PrintArea = "$A$1:$B" & [B65536].End(3).Row
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "lutfen print butonunu kullanin"
Cancel = True
End Sub


Sub Print_()
Application.Dialogs(xlDialogPrint).Show
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bence insanları zorlamanın gereği yok, aşağıdaki kodu kullanırsanız ister buton kullansın ister doğrudan print edilsin, Yazdırılacak alanı saptır.

Aşağıdaki kod yeterlidir sanırım.

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sayfa1" Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$B" & [B65536].End(3).Row
End If
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
36
Excel Vers. ve Dili
Office 2007 Eng
merhaba, sagolun, son verdiginiz kod cok iyi. tam cozum. isin icinden cikamadigim son birsey kaldi; o da A kolonundaki =IF(B2<>"",1+A1,"") genel formulunu uyguladigimda (asagi kadar uzatip butun hucrelere uyguluyorum) otomatik numara verme islemi gerceklesiyor ama numaranin basinda bir harf olmasi gerekiyor ama oyle olunca hata veriyor. (otomatik olarak PC0001 den devam etmesini istiyorum, PC0002, PC0003 sekline ama denedigim butun formuller hep hata veriyor). tekrar yardimlariniz icin tesekkurler.
 
Üst