• DİKKAT

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

Word'a Excel Sayfasini Aktama

Katılım
18 Mayıs 2007
Mesajlar
115
Excel Vers. ve Dili
2003
Merhabalar dosyada günlük 1 ve günlük 2 sayfalarım var. userform üzerinde 2 tane buton yaptım. Günlüklerimi word sayfasına aktarmak istiyorum. Böylece günlüklerimi depolamış olurum. userform üzerinde günlük 1'i word'a aktar butonu ile günlük2yi worda aktar butonu var. şimdi ikisinden birine tıkladığım zaman ilgili günlüğün excel sayfasına yapışsın, istiyorum. Bana yardım ederseniz sevinirim.
 
USERFORMA
Kod:
Private Sub CommandButton1_Click()
Worksheets("GÜNLÜK1").Range("A3:j81").Copy
Call SeciliAlaniWordeYapistir(42.55, 42.55, 25, 25, False)
Unload Me
End Sub

Private Sub CommandButton2_Click()
Worksheets("GÜNLÜK2").Range("A3:G68").Copy
Call SeciliAlaniWordeYapistir(42.55, 42.55, 25, 25, False)
Unload Me
End Sub

MODULE
Kod:
Sub SeciliAlaniWordeYapistir(ust, alt, sol, sag As Integer, yon As Boolean)
'A4 sayfası
Application.ScreenUpdating = True
    'Range("A1:L5" & SnDlSt + 7).Copy
    Set objword = CreateObject("Word.Application")
    Set Mydoc = objword.Documents.Add(DocumentType:=wdNewBlankDocument)
    objword.Visible = True
    
    With Mydoc.PageSetup
        .TopMargin = ust '42.55
        .BottomMargin = alt    '42.55
        .LeftMargin = sol     '25#
        .RightMargin = sag    '25#
        If yon = True Then
            .PageWidth = 595.35 'CentimetersToPoints(21)     'dikey
            .PageHeight = 841.95 'CentimetersToPoints(29,7)  'dikey
        Else
            .PageWidth = 841.95 'CentimetersToPoints(29.7)   'yataysayfa
            .PageHeight = 595.35 'CentimetersToPoints(21)    'yataysayfa
        End If
    End With
    objword.Selection.PasteSpecial Link:=False, DataType:=10
    Application.CutCopyMode = False
Set objword = Nothing:      Set Mydoc = Nothing
Application.ScreenUpdating = False
End Sub
 
Rica ederim.
bu arada sayfa adı "Günlük 2" değil "Günlük2" olacak.
 
Sayın hsayar, kodları da yapıştırdım. Ama bu sefer de word sayfasında düzensiz duruyor. BUnu da halledebilir miyiz?
 
halledemeyiz çünkü dikey sayfada gözükmüyor yatay sayfada bol geliyor... onu siz exceldeki sayfanın sütun genişlkikleirni ayarlayarak yapabilirsiniz
 
Şöyle Deneyin
MODULE
Kod:
Sub SeciliAlaniWordeYapistir(ust, alt, sol, sag As Integer, yon, kapat As Boolean, kytAd)
'Excel.web.tr/Hsayar
'(ust: Üst Kenar Boşluğu, alt: Kenar Boşluğu, sol: Kenar Boşluğu, sag: Üst Kenar Boşluğu
'yon: Dikey ise True, Yatay ise False
'kapat: Kapatılacak ise True, Kapatılmayacak ise False
'kytAd: Dosyanın kaydedileceği ad
Application.ScreenUpdating = True
    Dim objword As Object
    Set objword = CreateObject("Word.Application")
    Set Mydoc = objword.Documents.Add(DocumentType:=wdNewBlankDocument)
    objword.Visible = True
    
    With Mydoc.PageSetup
        .TopMargin = ust '42.55
        .BottomMargin = alt    '42.55
        .LeftMargin = sol     '25#
        .RightMargin = sag    '25#
        If yon = True Then
            .PageWidth = 595.35 'CentimetersToPoints(21)     'dikey
            .PageHeight = 841.95 'CentimetersToPoints(29,7)  'dikey
        Else
            .PageWidth = 841.95 'CentimetersToPoints(29.7)   'yataysayfa
            .PageHeight = 595.35 'CentimetersToPoints(21)    'yataysayfa
        End If
    End With
    objword.Selection.PasteSpecial Link:=False, DataType:=10
    Application.CutCopyMode = False
    
    If kytAd <> "" Then
       With objword
            .ActiveDocument.SaveAs kytAd
            If kapat = True Then
                .ActiveDocument.Close
                .Quit
            End If
        End With
    End If
Set objword = Nothing:      Set Mydoc = Nothing
Application.ScreenUpdating = False
End Sub

USERFORMA
Kod:
Private Sub CommandButton1_Click()
ThisWorkbook.Worksheets("G&#220;NL&#220;K1").Activate
ThisWorkbook.Worksheets("G&#220;NL&#220;K1").Range("A3:j81").Copy
strAd = ThisWorkbook.Path & "\" & ActiveSheet.Name & "-" & Format(Now, "dd-mm-yy h-mm-ss") & ".doc"
Call SeciliAlaniWordeYapistir(42.55, 42.55, [B][color="red"]25, 25[/color][/B],False, True, strAd)

Unload Me
End Sub

Private Sub CommandButton2_Click()
ThisWorkbook.Worksheets("G&#220;NL&#220;K2").Activate
ThisWorkbook.Worksheets("G&#220;NL&#220;K2").Range("A3:g68").Copy
strAd = ThisWorkbook.Path & "\" & ActiveSheet.Name & "-" & Format(Now, "dd-mm-yy h-mm-ss") & ".doc"
Call SeciliAlaniWordeYapistir(42.55, 42.55, [B][color="red"]25, 25[/color][/B], False, True, strAd)
Unload Me
End Sub

yap&#305;&#351;t&#305;r&#305;n daha sonra
25, 25
alanlar&#305;n&#305; art&#305;rark deneyin tabloyu ortalars&#305;n&#305;z
 
G&#252;nl&#252;k2 i&#231;in a&#351;a&#287;&#305;daki gibi fena olmad&#305; ama s&#252;tun geni&#351;likerini biraz k&#305;sarsan&#305;z dikey sayfayada oturur ozaman 1. falseyi de true yapman&#305;z gerekir
Kod:
Private Sub CommandButton2_Click()
ThisWorkbook.Worksheets("G&#220;NL&#220;K2").Activate
ThisWorkbook.Worksheets("G&#220;NL&#220;K2").Range("b3:g68").Copy
strAd = ""
strAd = ThisWorkbook.Path & "\" & ActiveSheet.Name & "-" & Format(Now, "dd-mm-yy h-mm-ss") & ".doc"
Call SeciliAlaniWordeYapistir(42.55, 42.55, 115, 115, False, True, strAd)
Unload Me
End Sub
 
Call SeciliAlaniWordeYapistir(42.55, 42.55, 115, 115, False, True, strAd)
bu hale getirtiniz ve hata ald&#305;n&#305;z bende do&#287;ru &#231;al&#305;&#351;&#305;yordu virg&#252;llere dikkat edin

bu arada eski kodlar&#305;n t&#252;m&#252;n&#252; silin ve 9. mesajdaki kodlar&#305; yap&#305;&#351;t&#305;r&#305;n.
CommandButton2_Click() olay&#305;n&#305;da 10.mesajdaki gibi de&#287;i&#351;tirin.
 
evet &#351;imdi oldu. Ama excellde &#246;nizlemede benim g&#252;nl&#252;k1 iki sayfada g&#246;z&#252;k&#252;yor ve g&#252;nl&#252;k 2de ise tek sayfada g&#246;z&#252;k&#252;yor. Sorun worde yap&#305;&#351;t&#305;r&#305;nca bu &#246;nizlemedeki gibi kalm&#305;yor.
 
Call SeciliAlaniWordeYapistir(42.55, 42.55, 115, 115, False, True, strAd)

42.55 de&#287;erlerini k&#252;&#231;&#252;lt&#252;n alt ve &#252;st kenar bo&#351;luklar&#305;n&#305; ifade eder bunlar
 
&#199;ok Te&#350;ekk&#220;r Ett&#304;m. B&#304;r&#304;nc&#304; G&#220;nl&#220;&#286;&#220; Ayarladim, &#304;k&#304;nc&#304; G&#220;nl&#220;&#286;&#220; False TRUE Yaptim Yan&#304; D&#304;key Yaptim. B&#304;r&#304;nc&#304;s&#304; Tamam &#304;k&#304;nc&#304; G&#220;nl&#220;k Ne Yaptimsa Olmadi. Hsayar Yardimlariniz &#304;&#199;&#304;n Te&#350;ekk&#220;r Ett&#304;m
 
ikinci g&#252;nl&#252;&#287;&#252;n s&#252;tun geni&#351;liklerini hafif k&#305;s&#305;n cdef uygun gibi gelmi&#351;ti bana
 
hsayar hocam ilginize te&#351;ekk&#252;r ederim. yanlar&#305;n&#305; biraz k&#305;st&#305;m. ama iki sayfada &#231;&#305;k&#305;yor. oysa sayfa excellde tek sayfa g&#246;z&#252;k&#252;yor. &#304;&#351;te problem burada ba&#351;l&#305;yor
 
hsayar hocam ilginize te&#351;ekk&#252;r ederim. yanlar&#305;n&#305; biraz k&#305;st&#305;m. ama iki sayfada &#231;&#305;k&#305;yor. oysa sayfa excellde tek sayfa g&#246;z&#252;k&#252;yor. &#304;&#351;te problem burada ba&#351;l&#305;yor


az &#246;nce bakt&#305;mda g&#252;nl&#252;k2 sayfas&#305; &#37;85 olarak orant&#305;lanm&#305;&#351;. ve ka&#287;&#305;t boyutunu %100 yap&#305;nca d&#246;rt sayfada &#231;&#305;k&#305;yor.
excelden worde kopyalamy&#305; %100 boyutlu yap&#305;yor...
orant&#305;layarak tablo olark aktarman&#305;n yolu varsa bende sevinirim.

&#351;imdilik excelde sayfay&#305; %100 olarak boyutland&#305;r&#305;n ve 1 sayfaya s&#305;&#287;acak hale getirin. ve Call Secilialan&#305;wordeyap&#305;&#351;t&#305;rda kenar bo&#351;luklar&#305;n&#305; vererek makroyu tekrar &#231;a&#287;&#305;r&#305;n.

bu arada ben hoca olacak kadar excelde iyi de&#287;ilim iyi bir taklit&#231;iyim benimde bilmedi&#287;im &#231;ok &#351;ey var.
Kodun kullan&#305;m&#305;

Call SeciliAlaniWordeYapistir(42.55, 42.55, 25, 25, False, True, strAd)

42.55 &#252;st kenar bo&#351;lu&#287;u (nokta cinsinden de&#287;eri> 1,5cm)
42.55 alt kenar bo&#351;lu&#287;u (nokta cinsinden de&#287;eri> 1,5cm)
25 sol kenar bo&#351;lu&#287;u (nokta cinsinden de&#287;eri> 0,88cm)
25 sa&#287; kenar bo&#351;lu&#287;u (nokta cinsinden de&#287;eri> 0,88cm)
False dikey word sayfas&#305; i&#231;in True, Yatay &#304;&#231;in False
True Kaydedilecekse True, Kaydedilmyecekse False
strAd Kaydedilecekse Ad girilir.
 
Son düzenleme:
Geri
Üst