sward175
Özel Üye
- Katılım
- 4 Şubat 2011
- Mesajlar
- 1,194
- Excel Vers. ve Dili
- Excel Vers. ve Dili:
Microsoft Office Professional Plus 2016
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Excel vba da userform'un çıktısını almak istiyorum. Onun için nasıl bir kod kullanabilirim?Aşağıdaki şekilde dener misiniz ?
Kod:Sub Yaazdir() ActiveSheet.PrintOut From:=1, To:=1 End Sub
İnternette bulduğum bir kodu paylaşıyorum.Excel vba da userform'un çıktısını almak istiyorum. Onun için nasıl bir kod kullanabilirim?
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As LongLong, ByVal dwExtraInfo As LongPtr)
#Else
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1
Private Sub CommandButton1_Click()
DoEvents
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + _
KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + _
KEYEVENTF_KEYUP, 0
DoEvents
Workbooks.Add
Application.Wait Now + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:=0, Link:=False, DisplayAsIcon:=False
' ActiveSheet.PasteSpecial Format:=1, Link:=False, _
' DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
'added to force landscape
ActiveSheet.PageSetup.Orientation = xlLandscape
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
' .PrintQuality = 300
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close False
End Sub
Bu şekilde dener misiniz ?hamitcan, Hocam Merhabalar,
Yazdırdığımda sadece tarih sütununu yazdırıyor.
Dediğiniz gibi yazdırma alanı belirliyorum hangi tarihleri seçersem o tarihleri yazdırıyor.
İsteğim E1 de yazılı tarihin B4:I5000 aralığındaki listeyi yazdırması.
Saygılarımla,
sward175
Sub Yaazdir()
[b3:i5000].Select
Selection.PrintOut From:=1, To:=1
End Sub