• DİKKAT

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

Dosya Adını Değişkene Atama

Katılım
9 Nisan 2007
Mesajlar
33
Excel Vers. ve Dili
excel 2003
Forumu biraz kurcaladım ancak uygun bir başlık bulamadım..

İçinde userform olan bir Excel dosyam var. Bu userform üzerine çeşitli bilgiler giriliyor, sonucunda hesapla tuşuna basınca veriler excel tablosuna yerleşiyor ve sonuçlar yine userform üzerinde görüntüleniyor.

Userform anlamında bir problem yok. Ama Userform açıkken showmodal ve minimize userform özelliği ile diğer dosyalara geçiş imkanı da sunuyorum.

Problem bu aşamada ortaya çıkıyor. Başka bir dosya aktifken userform'da hesapla tuşuna basınca o dosya üzerinde veri girişi yapmaya çalışıyor. Bunu da önce windows("Hesaplama").activate satırı ile çözdüm.

Ancak dosya farklı isimlerle kaydedilip daha sonra bu isimlerle kullanılabiliyor. Dolayısıyla sabit bir isme bağlamak çözüm olmuyor.

Sanıyorum mantıklı çözüm aktif dosya adını global bir değişkene atayıp sonra hesapla modülü çalıştığında buradan dosya adını alarak aktif hale getirmek ancak bir çözüm bulamadığımdan siz değerli uzmanlarımızın engin bilgisine başvurmak istedim.

İlginiz için teşekkürler..
 
Örneğin kodlarda;

Range("A1") = "falan filan..."

gibi bir satır, o sırada aktif olan penceredeki sayfanın A1 hücresine yazar.

Ancak,

thisworkbook.sheets("SayfaAdı").range("A1")= "falan filan...."

gibi bir kod, kodun içinde bulunduğu kitabın ilgili sayfasındaki A1 hücresine yazar.


........ gibi bir yöntem düşünebilirsiniz.

.
 
Çözüm öneriniz için teşekkürler ancak dosya adı sabit olmuyor..

Bir dosya Ekim Hesaplama, diğeri Kasım Hesaplama olabiliyor. Dolayısıyla thisworkbook kısmını bir değişkenden aldırmak daha doğru olur diye düşündüm. Ama dosya adı dosya içinde bir range'e atanıp oradan aldırılabilir belki dediğiniz gibi..
 
Merhaba
yanlış anlamadıysam

Dim a As String
a = Application.ActiveWorkbook.Name

komutları ile uygulamanın ismini a değişkenine alabilirsiniz
Daha sonra ise
Windows(a).Activate
ile aktif hale getirilebilir
 
Dediğinizi denedim ancak hesaplama modülü ayrı. Bu modülün içine yazınca da aktif pencerenin adını almış oluyor. Kısacası benim istediğim userform'un ait olduğu dosyanın adı..
 
Merhaba
yanlış anlamadıysam

Dim a As String
a = Application.ActiveWorkbook.Name

komutları ile uygulamanın ismini a değişkenine alabilirsiniz
Daha sonra ise
Windows(a).Activate
ile aktif hale getirilebilir

Sayın YaqIshIqLI, yuqarıdaky kodu userform'un initialize olayına yazarsanız ve dim a .. değishkenini de public olarak atarsanız, form achıldığında dosya adını hafızaya alır ve bashka bir dosya faalken bile form üzerinde işlem yaparsanız windows (a).activate ile ilk belgenizi aktif edebilirsiniz.

İyi chalıshmalar.
 
Sorunu dosya adını userform üzerinde gizli bir label'a atayarak ve sonrasında bu label'dan çağırarak çözdüm. Yardımlarınız için teşekkürler..
 
Geri
Üst