Export Edilmiş UserForm'u Makroyla Import Etme

Katılım
26 Ağustos 2004
Mesajlar
4
İşyerinde kullandığım programı geçen nisan ayında office.gen.tr'ye yollamıştım ve sitede yayınlanmıştı. Bu programı office97'de çalışacak şekilde düzenlemiştim.
Soruma gelince;
Acaba bunu dışarıdan bir xls dosyası kullanarak ana dosya içerisine yine dışarıdaki userformları ve bas dosyalarını import edebilirmiyiz. Yani kullanıcı ikinci dosyadaki seçenekleri kullanacak ve Office97,2000,2002 için ana dosyayı içerisindeki özelleştirilmiş ayarları bozmadan bu işlemi gerçekleştirecek.
Bu mümkünmüdür?

Belirtmek istediğim bir nokta var "On Error Resume Next" komutu bütün bu işlemlere gerek olmadığını düşündürebilir. Fakat programın hata vermeden çalışıp arka planda yanlış sonuçlar üretmesi yerine hiç çalışmamasını tercih ederim. En azından yeni yöntemler öğrenmiş oluruz.
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,534
Excel Vers. ve Dili
Excel 2010 - Türkçe
Syın o z g u r,
ben sizin yazdıklarınızdan fazla bir şey anlamadım???
 
Katılım
26 Ağustos 2004
Mesajlar
4
Sorum anlaşılamamış olabilir. Açıkçası bende buna olur gözüyle bakmasamda sonuçta yapmak istediğim yöntemin gerşekleşme ihtimali beni umutlandırmıştı. Kestirmeden gidemesekte VBE'nin diğer yöntemlerini kullanmak hayal gücümüze kalmış bir olay.

ecxel.web.tr'nin tasarımcı ve üyelerine sevgiler saygılar. :hey:
 
Katılım
26 Ağustos 2004
Mesajlar
4
Aslında basitçe soru şu:

A.xls içerisinde modül ve formlar var VBE editörüne geçtik. Ve bu formlardan veya modüllerden belirlenenleri *File* menüsünü kullanarak *Export* ettik. Ben diyorumki bu oluşturulan frm veya bas dosyalarını B.xls'yi kullanarak makroyla Diğer kullanıcıların A.xls'sine gömebilirmiyiz?

Benim bildiğim kadarıyla bu program fason çalıştığımız bir iki firmaya verildi.

Bu hem değişik office versiyonları için hemde kullanıcıların dosya içerisinde özelleştirdikleri kısımları bozmadan, kullandıkları programın güncellenmesini sağlayacak. Çünkü Export edilen formlar sadece arayüzü ile değil kodlarıyla beraber dışarıya aktarılıyor.

Sonuç : Bana program için gelen isteklerde istenen değişikliği yapıp kullanıcıya B.xls'yi ve frm ve bas dosyalarını yollamam yeterli olacak.

Başınızı ağrıttıysam kusuruma bakmayın.. Hayati bir konu olmasada, yapılabilirmi? sorusuna cevap aramıştım.
 
Katılım
5 Ağustos 2004
Mesajlar
10
@ozgur

sorunun cevabı bence xla da gizli. Programını eklenti şekline dönüştürürsen. Bu güncelleştirme işlerini daha kolay yapabilirsin.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
@ozgur:

Kullanıcıya göndereceğin B.xls dosyasındaki kod;

Kod:
Sub Test()
    Myfile = "C:\Test.xls"
    MyForm = "C:\UserForm1.frm"
    If Dir(Myfile) <> Empty And Dir(MyForm) <> Empty Then
        Workbooks.Open Myfile
        On Error GoTo ErrHandler:
        Workbooks(Dir(Myfile)).VBProject.VBComponents.Import MyForm
        Workbooks(Dir(Myfile)).Close SaveChanges:=True
        MsgBox "İşlem tamam !"
        Exit Sub
    Else
        MsgBox Myfile & " ve " & MyForm & " dosyalarının isimlerini ve doğru" _
        & " yerleştirildiğini kontrol edin !"
        Exit Sub
    End If
ErrHandler:
    Select Case Err.Number
        Case 60061
        MsgBox "Dosyada " & Dir(MyForm) & " zaten mevcut !"
        Case Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End Select
    Workbooks(Dir(Myfile)).Close SaveChanges:=False
End Sub
Yapılan iş; yukarıdaki kodlar çalıştırıldığında kapalı durumdaki C:\Test.xls dosyası açılacak ve içine C:\UserForm1.frm ilave edildikten sonra kaydedilerek kapatılacaktır.

Kodlar çalıştırılmadan önce yapılması gereken ise; kullanıcının C:\Test.xls ve C:\UserForm1.frm dosyalarını kendi bilgisayarlarında, kodlarda belirtilen yerlere yerleştirmiş olmasıdır.
 
Katılım
26 Ağustos 2004
Mesajlar
4
Herkese merhaba
Gün içerisindeki işlerim nedeniyle foruma geç girebildim. Sorumla ilgilenen arkadaşlara teşekkürü bir borç bilirim. Herkese başarılar.
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,534
Excel Vers. ve Dili
Excel 2010 - Türkçe
Merhaba,
bir kaç üyeden konu ile ilgisi olmayan mesajlarını silmem için talep geldi. Bu durumda anlam bütünlüğü bozulacağından konu ile ilgisi olmayan tüm mesajları silmek ve bazılarının içeriklerini değiştirmek daha mantıklı göründü. (Yani bazı mesajlar hiç varolmamış gibi)

Anlayışla karşılayacağınızı umuyorum.
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,534
Excel Vers. ve Dili
Excel 2010 - Türkçe
Mesajları silerken ve bazılarını editlerken (sadece sildim, hiçbir ekleme yok) kendimi kasap gibi hissettim. (Mesleğe olan saygısızlık değil, sadece bitme doğrama mansında.)

Hiç güzel bir duygu değildi. Umarım tekrar yapmak zorunda kalmam. :agla:
 
Üst