Excel'e Word dosyası gömmek

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
İyi geceler arkadaşlar.

Bir klasör içinde 1 adet excel ve 9 adet word belgem var. Excel Userform içerisinde işlem yaparak aynı klasör içinde bulunan Word belgelerine bağ yapıştır yöntemiyle veri girişi yapıyorum. Benim sorum bu 9 adet word belgesini Excel içerisine gömerek Word belgelerinin kaybolmasını ya da görünmesini engellemek.
Excel içerisinde Ekle-Nesne-Dosyadan Oluştur yöntemiyle Word belgemi excel içerisine gömüyorum. Yani kaynak dosyayı silsem de gömdüğüm için Excel içerisinden dosyamı açabiliyorum. Ancak ben şekil de dosya yolumu nasıl göstereceğim bilemiyorum.

Excelden Worde aktarma kodlarım şu şekil de ;

Kod:
Set objEvn = CreateObject("scripting.filesystemobject")
Set objShell = CreateObject("WScript.Shell")
strYol = objShell.SpecialFolders("Desktop")
yol = ThisWorkbook.Path
Set objWord = CreateObject("word.Application")
objWord.Visible = True
objWord.Application.Documents.Open yol & "\" & "Test.docx", passworddocument:="1234", ReadOnly:=False

Set wd = objWord.Documents.Open(ThisWorkbook.Path & "\" & "Test.docx")

Sec = wd.Range.Text
For x = 0 To 4


objWord.ActiveDocument.Bookmarks.Add Range:=objWord.Selection.Range, Name:=y_imi(x)
Next
Set WDDoc = objWord.ActiveDocument

WDDoc.SaveAs strYol & "\" & TextBox2.Value & " (Test)" & ".docx", Password:=""
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Bu konuda çok yardım bekliyorum. Yardım ederseniz sevinirim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Bu konuda çok yardım bekliyorum. Yardım ederseniz sevinirim.
Selamlar,
Sanırım excel içindeki word nesnesini açmak ve kodlarla üzerinde işlem yapmak istiyorsunuz. Bunun için aşağıdaki kodu kullanabilirsiniz. Kodlarda bulunan "NesneAdı" yerine kendi word nesnenizin adını yazmalısınız.
C#:
ActiveSheet.OLEObjects("NesneAdı").Verb (xlVerbPrimary)
    Set WDApp = GetObject(, "Word.Application")
    Set WDDoc = WDApp.ActiveDocument
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Cevabınız için çok teşekkür ederim ancak ben verdiğiniz kodu uygulamakta zorluk çekiyorum. Yukarıda verdiğim kodlara, verdiğiniz kodu uyarlamanız mümkün mü ? Ben yapınca "Worksheet sınıfının Oleobjects özelliği alınamıyor" diye hata alıyorum.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Örnek bir dosya eklemelisiniz. Muhtemelen nesne adını uyarlayamadınız.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Şu an altın üyeliğim aktif olmadığı için örnek dosyayı başka linke yükledim. Hocam şimdi worde aktar butonuna tıkladığımda şu an için, aynı klasör içinde bulunan Örnek.docx isimli şifresi 1234 olan word dosyasını açarak bu dosyayı masaüstüne farklı kaydet şeklinde kaydediyor. Benim istediğim kodun özellikleri yine aynı kalsın. Yani şifreli bir wordu açarak içerisinde değişiklik yapıp masaüstüne farklı kaydetsin ama bu word klasör içindeki değil, excel içine gömülü word olsun istiyorum sadece.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam çok teşekkür ediyorum size. Gördüğüm ve denediğim kadarıyla gayet güzel çalışıyor şu an. Tamamen orijinal dosyama uyarlamaya çalışacağım tekrar çok sağolun.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam kendi dosyalarıma uygulamaya çalıştığım zaman bu kod satırında hata alıyorum.
Kod:
ActiveSheet.OLEObjects("Gorusmeformu").Verb (xlVerbPrimary)
ve devamında yine bu uyarı çıkıyor ;

"Worksheet sınıfının Oleobjects özelliği alınamıyor"
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Bunun bir kaç sebebi olabilir:
1- Excel dosyası içinde word nesnesi oluşturmamış olabilirsiniz.
2- Word nesnesine ad vermemiş olabilirsiniz. Bunun için word nesnesini seçip adres çubuğuna yeni ismi yazıp enter'lamalısınız.
3- Word nesnesi başka sayfada olabilir. Bunu düzeltmek için kodu word nesnesinin bulunduğu sayfada çalıştırın ya da "ActiveSheet" yerine nesnenin bulunduğu sayfanın adını yazın. Örnek: Sheets("Sayfa1")
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam dediklerini harfiyen uyguladım ve sonuç aldım yine teşekkür ediyorum. Ek olarak ilk gönderdiğim kodda belirttiğim:

objWord.Application.Documents.Open yol & "\" & "Test.docx", passworddocument:="1234", ReadOnly:=False

Kod satırında bulunan Word belgesi açma şifresini barındıran kod parçasını, sizin verdiğiniz koda uyarlamak mümkün mü ?
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Excel içine gömülü word nesnesi sanırım şifrelenmiyor. Denemelerimde şifre oluşturamadım.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam o sorunu da şablonların olduğu sayfayı gizleyerek veya şifreleyerek çözeceğim ama şöyle bir sorunum oldu kusura bakmazsanız iletiyorum:

Excel içine Formlar diye sayfa oluşturarak Word belgelerimi buraya yükledim. Sizin verdiğiniz kodlarla belgemi çağırabiliyorum hatta masaüstüne farklı kaydette oluyor. Ama önceki kullandığım kod ile orijinal şablonu bozmadan direk masaüstüne farklı kaydedilen wordde değişiklik yapıyordu. Şimdi ise orijinal şablonumu bozarak farklı kaydediyor.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Ek olarak Excel'den Word'e bağ yapıştır yöntemiyle veri aktarıyorum hocam.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Word nesnesi kendisine girilen veriyi otomatik kaydediyor. Sanırım sorun bundan kaynaklanıyor. Word nesnesinde kapanırken kaydetmeyi engelleyen bir ayar var mı bilemiyorum. Ancak kodlarda yapılacak revizelerle bu sorunun önüne geçilebilir. İşlemleri word nesnesi üzerinde yapıp kaydetmek yerine, nesneyi farklı kaydedip kaydedilen dosya üzerinde değişiklik yapılırsa sorun kalmaz. Kodları daha önce eklediğim örnek dosyaya ekleyerek deneyiniz.
C#:
Private Sub CommandButton1_Click()
y_imi = Array("sayi_no", "adi_soyadi", "tarih", "olay", "durumu")
Set objEvn = CreateObject("scripting.filesystemobject")
Set objShell = CreateObject("WScript.Shell")
strYol = objShell.SpecialFolders("Desktop")
yol = ThisWorkbook.Path

Set obj = ActiveSheet.OLEObjects("Örnek")
obj.Verb (xlVerbPrimary)
obj.Object.SaveAs strYol & "\" & " Örnek" & ".docx"

Set wd = CreateObject("word.Application")
wd.Visible = True
wd.Application.Documents.Open strYol & "\" & " Örnek" & ".docx"

obj.Object.Application.Quit False

Sec = wd.ActiveDocument.Range.Text
For x = 0 To 4
wd.ActiveDocument.Bookmarks.Add Range:=wd.Selection.Range, Name:=y_imi(x)
Next

wd.ActiveDocument.Save
wd.Application.Quit
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam Allah senden razı olsun. Daha önce hiç örneğini görmediğim bir kodlama yardımında bulundunuz. Epey denedim şu an için sıkıntı çıkmadı hiç. Tekrar teşekkür ediyorum. Hayırlı sahurlar :)
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Leumruk hocam, masaüstüne kaydedilen word dosyasına tıkladığım zaman donuyor ve öylece kalıyor. Çünkü uygulamanın bağ yapıştır yöntemiyle hazırlayıp masaüstüne kaydettiği Word dosyasına tıklayıp bağlantıyı güncelleştir uyarasına evet veya hayır dediğimiz zaman beraberinde Excel userform da açılıyor ve donup kalıyor. Bu olayda farklı kaydet yaparken bağ yapıştır olarak kaydetmese aslında açılacak ve userform görünmeyecek. Bir sorun var ama ne yapsam olmadı.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Leumruk hocam, masaüstüne kaydedilen word dosyasına tıkladığım zaman donuyor ve öylece kalıyor. Çünkü uygulamanın bağ yapıştır yöntemiyle hazırlayıp masaüstüne kaydettiği Word dosyasına tıklayıp bağlantıyı güncelleştir uyarasına evet veya hayır dediğimiz zaman beraberinde Excel userform da açılıyor ve donup kalıyor. Bu olayda farklı kaydet yaparken bağ yapıştır olarak kaydetmese aslında açılacak ve userform görünmeyecek. Bir sorun var ama ne yapsam olmadı.
Sn. başakşehirli, sorunu anlamak için görmek gerekli. Kodlamada doğru sonuca ulaşmak için deneme yapmak çok önemli. Dosyalarınızı görmeden bir yorum yapamayacağım.
 
Üst