• DİKKAT

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

Sayfa Yapısı Ayarları Yardım

  • Konbuyu başlatan Konbuyu başlatan kurten
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Nisan 2007
Mesajlar
12
Excel Vers. ve Dili
Office 2007 Türkçe
Merhaba arkadaşlar,
Gönderdiğim dosyadaki kodlar modülünde bulunan sinav_olustur alt programı, sorun yaşadığım yer. Şöyle ki orada sırasıyla sheetler oluşturuluyor bir döngü içerisinde. Her yeni oluşturulan sheet'teki satırların sayısı birbirinden farklı olabiliyor. Örneğin bir sheette 22 öğrenci var ve bu öğrenciler sayfaya sığabiliyorken, bir başka sheette 60 öğrenci var ve bu öğrenciler sayfaya sığmayabiliyor. Ben de her sayfanın A4 boyutunda kalarak, uygun oranda sığdırılmasını istiyorum içindekilerin. Ancak record macro ile aldığım kodlar çok uzattı işi.Dakikalarca bekliyorum çalışması için. Sayfa yapısı ayarlarını burada her sheet oluşturulurken yapabileceğim gibi, tümü oluşturulup bu sheetler yeni bir workbook'a kopyalandıktan sonra tümü üzerinde de yapılabilir. Bu noktada bir tercihim yok. Ama tabi hız açısından herhangi birinin diğerine göre artısı varsa onu tercih etmek mantıklı olacaktır.
Bu konuda yardım edebilecek bir arkadaş varsa, çok makbule geçecek.
Teşekkürler.
 

Ekli dosyalar

merhaba
önceliklle sorunuzda anlaşılmayan hangi sayfanın ayarlanacağı idi ben bunu en fazla veri olan sayfayı seçtim ve onu hem yatay hemde dikey olarak a4 boyutunda ayarladım
yatay
Kod:
Private Sub CommandButton2_Click()
With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(1.96850393700787)
        .RightMargin = Application.InchesToPoints(1.96850393700787)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    MsgBox " SAYFANIZ A4 BOYUTUNDA YATAY OLARAK AYARLANDI"
    MsgBox "www.excel.web.tr ailesine teşekkürler"
End Sub
dikey
Kod:
With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.118110236220472)
        .RightMargin = Application.InchesToPoints(0.118110236220472)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    MsgBox " SAYFANIZ A4 BOYUTUNDA DİKEY OLARAK AYARLANDI"
    MsgBox "www.excel.web.tr ailesine teşekkürler
ayrıca makrolar benim bilgisayarımda hata verdiği için sadece bu kodları deniyebildim.
örnek dosya ekte inceleyiniz.
 

Ekli dosyalar

merhaba
önceliklle sorunuzda anlaşılmayan hangi sayfanın ayarlanacağı idi ben bunu en fazla veri olan sayfayı seçtim ve onu hem yatay hemde dikey olarak a4 boyutunda ayarladım
yatay
Kod:
Private Sub CommandButton2_Click()
With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(1.96850393700787)
        .RightMargin = Application.InchesToPoints(1.96850393700787)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    MsgBox " SAYFANIZ A4 BOYUTUNDA YATAY OLARAK AYARLANDI"
    MsgBox "www.excel.web.tr ailesine teşekkürler"
End Sub
dikey
Kod:
With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.118110236220472)
        .RightMargin = Application.InchesToPoints(0.118110236220472)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    MsgBox " SAYFANIZ A4 BOYUTUNDA DİKEY OLARAK AYARLANDI"
    MsgBox "www.excel.web.tr ailesine teşekkürler
ayrıca makrolar benim bilgisayarımda hata verdiği için sadece bu kodları deniyebildim.
örnek dosya ekte inceleyiniz.

Yanıt verdiğiniz için teşekkür ederim. Mesajımda açıkladığımı zannediyorum ama gözden kaçmış olabilir. Kod ile oluşturulan sayfalarım var. Duruma göre değişebiliyor hangileri ve kaç tane olduğu. Bunların tümünün ayarlanması gerekiyor. Sayfalar oluşturulurken de ayarlanabilir, oluşturulduktan sonra da. Sizin önerdiğiniz çözüm yöntemi hali hazırda kullanılıyor ama bu yöntem ile bir sıkıntım olduğunu da belirtmiştim. O da şu: Örneğin 13 tane sheet oluşturulup sığdırılması gerekiyor A4 boyutuna. Bu sizin de önerdiğiniz kod kullanıldığında çok uzun sürüyor. Ben bunun daha kısa sürmesini sağlayacak bir yol arıyorum. Yanıtınıza tekrar teşekkür ederim.
 
merhaba
birşey soracağım sizin verdiğiniz kodu ben çalıştıramadım zaten ama kafama takılan bir şey var siz benim verdiğim kodu butona bağlıyarak istediğiniz sayfada çalıştırdığınız takdirdemi yavaşlıyor. onu öğrenmek istedim
 
merhaba
birşey soracağım sizin verdiğiniz kodu ben çalıştıramadım zaten ama kafama takılan bir şey var siz benim verdiğim kodu butona bağlıyarak istediğiniz sayfada çalıştırdığınız takdirdemi yavaşlıyor. onu öğrenmek istedim

Hayır. Şöyle: Her sınıf için bir sheet oluşturuyor kodum. 20 tane sınıfım olursa 20, 40 sınıfım olursa 40 sheet oluşturuyor yani. Ve bunlar yeni bir workbook'a atılıyor. Sorun burada: örneğin 40 tane sheetin 40'ına da bu ayarların uygulanması gerekiyor. Hepsine gidip tek tek yapmak istemiyorum yani. İşlem sona erdiğinde bunun da tamamlanmış olması gerekiyor. Umarım anlatabildim.
 
sizin makronuz örneğin 20 sınıfınız var ise 20 adet farklı sayfa oluştuyor ve onu ayarlamasını istiyor anladığım kadarıyla umarım yardımcı olur diğer uzman arkadaşlar kolay gelsin konuyu takip etmeye devam edeceğim
 
sizin makronuz örneğin 20 sınıfınız var ise 20 adet farklı sayfa oluştuyor ve onu ayarlamasını istiyor anladığım kadarıyla umarım yardımcı olur diğer uzman arkadaşlar kolay gelsin konuyu takip etmeye devam edeceğim

Evet tam olarak durum bu. İlginize teşekkür ederim yeniden. Umarım birileri yardımcı olabilir.
 
Yok mu bir yardım edebilecek... :( :( :(

merhaba size bir şey daha soracağım denerseniz belki olabilir benim verdiğim kodlardan hangisine göre ayarlayacaksanız onu buton yardımı ile açtığınız yeni sayfa'ya kopyalarsanız olmuyor mu ? bu benim aklıma bugün geldi deneyip bilgi verirseniz sevinirim.
 
merhaba size bir şey daha soracağım denerseniz belki olabilir benim verdiğim kodlardan hangisine göre ayarlayacaksanız onu buton yardımı ile açtığınız yeni sayfa'ya kopyalarsanız olmuyor mu ? bu benim aklıma bugün geldi deneyip bilgi verirseniz sevinirim.

Programım hali hazırda istediğim işi bir döngü içerisinde tüm sayfalara aşağıdaki kodla zaten yapıyor.

Kod:
ActiveSheet.PageSetup.FitToPagesTall = 1
ActiveSheet.PageSetup.FitToPagesWide = 1

Fakat çok yavaş çalışıyor programın bu kısmı. Şimdilik bu bölümü kaldırıp, yerine kenar boşluklarını ayarlama kodlarını koydum. Ama asıl çözüm bu değil tabi.
 
merhaba
bana kalırsa çok fazla çok uzun makrolar sanırım bilgisayarınızı yoruyor.
bana kalırsa başka bir konu açarak bu yavaşlamayı çözmelisin
 
Geri
Üst