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..
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ö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.

.
 
Katılım
9 Nisan 2007
Mesajlar
33
Excel Vers. ve Dili
excel 2003
Çö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..
 
Katılım
24 Temmuz 2007
Mesajlar
726
Excel Vers. ve Dili
Excel 2010 tr
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
 
Katılım
9 Nisan 2007
Mesajlar
33
Excel Vers. ve Dili
excel 2003
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ı..
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
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.
 
Katılım
9 Nisan 2007
Mesajlar
33
Excel Vers. ve Dili
excel 2003
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..
 
Üst