• DİKKAT

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

excel verilerini worde aktarma

  • Konbuyu başlatan Konbuyu başlatan bravo64
  • Başlangıç tarihi Başlangıç tarihi
Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Merhaba arkadaşlar.
bu siteye tekrar tekrar teşekkür ediyorum ve tabii tüm emeği geçenlere..
sorunum şu;
Sub worde()
fName = Application.InputBox("Dosya ismi girin...", "Dosya")
If fName <> 0 Then
ActiveSheet.Name = fName
f = InputBox("Kaçıncı Satıra Kadar Aktarsın?", "Aktarılacak Bölge")
Range("A1: ı" & f).Copy
Set objword = CreateObject("Word.Application")
objword.Visible = True
Set MyDoc = objword.Documents.Add(DocumentType:=wdNewBlankDocument)
objword.Selection.PasteSpecial Link:=False, DataType:=2
objword.activedocument.SaveAs "C:\" & fName & ".doc"
End If
Application.CutCopyMode = False

End Sub

böyle bir makroyla worde aktarım yapıyorum ancak açılan word sayfasının yatay olmasını istiyorum.çünkü excel tablom geniş olduğu için word de alt alta geliyor..
İyilikler diliyorum.
 
A&#351;a&#287;&#305;daki sat&#305;r&#305; ekleyip denermisiniz.

Kod:
objword.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
 
merhaba

bu konu banda lazım ama
Set MyDoc = objword.Documents.Add(DocumentType:=wdNewBlankDocu ment)[/COLOR]
bu satırda hata veriyor kırmızı renkle işaretliyor sebebi neden olabilir bi bakarmısınız
 
bu konu banda lazım ama
Set MyDoc = objword.Documents.Add(DocumentType:=wdNewBlankDocu ment)[/color]
bu satırda hata veriyor kırmızı renkle işaretliyor sebebi neden olabilir bi bakarmısınız


Docu ment olarak ayrı olan kısımı birleştirip Document olarak bitişik yazın.
 
Sevgili Leventm,
kodu ekledim ama yine vertical oluyor..

Sub worde()
fName = Application.InputBox("Dosya ismi girin...", "Dosya")
If fName <> 0 Then
ActiveSheet.Name = fName
f = InputBox("Kaçıncı Satıra Kadar Aktarsın?", "Aktarılacak Bölge")
Range("A1: ı" & f).Copy
Set objword = CreateObject("Word.Application")
objword.Visible = True
Set MyDoc = objword.Documents.Add(DocumentType:=wdNewBlankDocument)
objword.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
objword.Selection.PasteSpecial Link:=False, DataType:=2
objword.ActiveDocument.SaveAs "C:\" & fName & ".doc"
End If
Application.CutCopyMode = False

End Sub
 
Evet olmadığını sonradan bende gördüm. İlginç o satırı word dosyasında çalıştırınca işlemini yapıyor, ama excelden çalıştırınca yapmıyor, sebebini araştıralım.
 
Olay&#305;n &#231;&#246;z&#252;m&#252; i&#231;in, wdOrientLandscape yerine, onun n&#252;merik de&#287;er kar&#351;&#305;l&#305;&#287;&#305;n&#305; yani 1 (bir) kullanacaks&#305;n&#305;z.

Nedeni ise &#351;u;

Yaz&#305;lan kodlarda de&#287;i&#351;kenler aras&#305;ndaki objWord de&#287;i&#351;keni, run-time yani, &#231;al&#305;&#351;ma s&#305;ras&#305;nda CreateObject y&#246;ntemi ile sonradan olu&#351;turulan bir Word nesnesi.

Dolay&#305;s&#305;yle, kodlardaki objWord nesnesine ait wdOrientLandscape sabiti Excel taraf&#305;ndan alg&#305;lanmad&#305;&#287;&#305; i&#231;in bu sabit, kullan&#305;c&#305; tan&#305;ml&#305; bir de&#287;i&#351;ken olarak alg&#305;lanmaktad&#305;r. Bu de&#287;i&#351;kene daha &#246;nceden bir de&#287;er verilmedi&#287;i i&#231;in de, Excel bu de&#287;i&#351;kenin de&#287;erini 0 (s&#305;f&#305;r) olarak alg&#305;lamaktad&#305;r.

Halbuki, MS Word uygulamas&#305;nda 0 (s&#305;f&#305;r) wdOrientPortrait sabitinin n&#252;merik de&#287;er olarak kar&#351;&#305;l&#305;&#287;&#305;d&#305;r.

&#304;&#351;te bu nedenle yukar&#305;daki kod, sayfay&#305; "Landscape" yerine "Portrait" olarak yazd&#305;rmaktad&#305;r.

Benzer &#351;ekilde, asl&#305;nda yukar&#305;daki kodlarda ge&#231;en wdNewBlankDocument sabiti yerine de 0 (s&#305;f&#305;r) kullanmak, i&#351;in mant&#305;&#287;&#305; nedeniyle gerekir. MS Word uygulamas&#305;nda da wdNewBlankDocument sabitinin n&#252;merik de&#287;er olarak kar&#351;&#305;l&#305;&#287;&#305; tesad&#252;fen 0 (s&#305;f&#305;r) oldu&#287;u i&#231;in ve yukar&#305;daki kodda Excel bunu yine kullan&#305;c&#305; tan&#305;ml&#305; bir de&#287;i&#351;ken olarak alg&#305;lay&#305;p, daha &#246;nceden de&#287;er verilmedi&#287;i i&#231;in 0 (s&#305;f&#305;r) olarak alg&#305;lad&#305;&#287;&#305;ndan dolay&#305;, tesad&#252;fen kodun o k&#305;sm&#305;nda bir problem &#231;&#305;kmamaktad&#305;r.

Bu i&#351;in ba&#351;ka bir &#231;&#246;z&#252;m&#252; de, VBA' de kodlarda CreateObject y&#246;ntemi yerine MS Word referans&#305;n&#305; ekliyerek, de&#287;i&#351;kenleri Word uygulamas&#305;na g&#246;re deklare etmektir.
 
Son düzenleme:
&#220;stad&#305;m a&#231;&#305;klamalar&#305;n i&#231;in &#231;ok te&#351;ekk&#252;rler, insan bazen bu kadar basit bir ayr&#305;nt&#305;y&#305; ka&#231;&#305;rabiliyor, hi&#231; akl&#305;ma gelmemi&#351;ti. Bu arada &#246;nermi&#351; oldu&#287;un ikinci kodlama mant&#305;&#287;&#305; ile ilgilide bir &#246;rnek rica edebilirmiyim.
 
Sayın Haluk ve Leventm, gerçekten süpersiniz.Naçizane tebriklerimi sunuyorum.
İyilikler dilerim..
 
Merhaba bravo64 sorun çözülmüş olan örnek bir dosyayı gönderirsen memnun oılurum. Şimdiden teşekkürler.
 
merhaba sn.hocalarım ve arkadaşlarım;

excelden worde aktarma makrosu gayet güzel çalışıyor fakat burda küçük bir sorun var dilerim çözülür çünkü çok kullanışlı
sorun excelin açılışında verdiği orijinal sütün genişliklerini kullandığınızda worde aktarırken sayfaya düzenli aktarıyor yani sütunlar hizalı oluyor
eğer sütun genişliklerini değiştirirseniz bu sefer aktarımda word dosyada bilgiler birbirinin içine giriyor sayfa düzeni diye birşey kalmıyor. konu hakkında değerli bilgilerinizi paylaşırmısınız bizimle.
 
Geri
Üst