Print Makrosunda Page Setup Horizontally kodu hk.

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

elimde aşağıdaki gibi seçili hale getirdiğim alanı yazdıran bir print makrosu mevcut.
Ben bu makroya normalde yazdırma ayarlarında bulunan Custom Margins seçeneği içerisinde Margins Sekmesi altındaki Page Setup ın Horizontally veya Vertically seçeneğinin işaretlendiği alanı makro kodun içerisine aktarmak istiyorum ve bu kodda Horizontally işaretlenmiş olarak yazdırsın istiyorum.

Şöyle bir şey buldum ama kodun içerisine bunu yerleştirdiğim zaman hata veriyor.
Worksheets("Sheet22").PageSetup.CenterHorizontally = True

yardımlarınızı rica ederim

Kod:
Sub Print_Format()
Dim myRange As String
    
myRange = Selection.Address
ActiveSheet.PageSetup.PrintArea = myRange
With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.2)
    .PaperSize = xlPaperLetter
    .Orientation = xlPortrait 'xlLandscape
    .Zoom = False
    
    '.FitToPagesWide = 1
    '.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True
'Worksheets("Sheet22").PageSetup.CenterHorizontally = True 'Print Preview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1 'Printout
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
.CenterHorizontally = True

yerine

.Orientation = xlLandscape

olması gerekiyor sanırım.

Bulduğunuz kod sayfayı yatay yapma değil çıktıyı yatay olarak sayfanın ortasına hizalamak için.
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
evet zaten ortaya hizalamak istiyorum. landscape kodu zaten macroda var ama o sayfayı yatay yapar. zaten kodda xlPortrait olarak yazılmış. ama işte çıktı varsayılan olarak Kağıtta Sağa dayalı olarak yazdırıyor. ben menülerden gidip horizantally seçersem ortalıyor. ve istediğim ölçüde bir çıktı almamı sağlıyor. Sağa dayalı çıktıda olması gereken yerden veriler kaymış oluyor. o yüzden ortalasın istiyorum.

ama işte ben bunu kullanıcılara verdiğimde pc değiştiğinde print ayarlarını tekrar ayarlamak ve horizantally yapmak gerekiyor. her seferinde bu ayarı yapmak yerine ben kodun içine varsayılan olarak horizantally yerleştireyim istiyorum
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hatalı haliyle yükleyin inceleyelim isterseniz.
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
tamam sorunu çözdüm ben kodun içerisine "PageSetup.CenterHorizontally = True" yazıyormuşum halbuki zaten With ile başlayan komut dizininde PageSetup var
o komut idzini içerisine .CenterHorizontally = True yazınca sorun düzeldi hata vermedi :)
 
Üst