Çözüldü UserForm Nesnesinin Application Visible Durumunu Kontrol Etme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

servetpeker

Normal Üye

Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhabalar,

UserForm üzerinde bir program yaptım. Exceli açtığım zaman Module kısmına Application.Visible=False kodu ile Excel uygulamasının açılmasını engelledim ve sadece UserForm uygulaması açılıyor. Hatta iki tane de CommandButton koyarak excel çalışma sayfasının tekrar açılıp kapanmasını sağlıyorum. Hatta açılırken parola koydum ki herkes excel dosyasını göremesin diye. Fakat Application.Visible komutundan dolayı açık olan bütün excel dosyaları kapanmaktadır ve açılmamaktadır. Aynı zamanda USerForm programını kapattığım zaman ve başka bir excel dosyası açmaya çalıştığım zaman şifreli excel çalışma kitabı da açılıyor şifresiz olarak. Bu durumun çözümünü nasıl yapabilirim? Benim istediğim UserForm dosyası açık iken ve o UserForma ait excel dosyası kapalı iken aynı zamanda başka excel dosyaları üzerinde de çalışma yapabileyim. Yazdığım kodlar sadece programın kayıtlı excel dosyasında çalışsın diğerlerinde çalışmasın. Ayrıca UserForm dosyasını kapatıp diğer dosyaları açtığım zamanda şifreli dosya açılmasın. Umarım derdimi anlatabilmişimdir. Yardımcı olabilir misiniz?
 
Çözüm
Merhaba.
Konu sahibinin değil de cevap yazanların örnek belge eklemesi ilginç olmuş.
Kesin çözüm için konu sahibinin örnek belge eklemesi yerinde olur (örnek belge konusunda cevabımın altındaki İMZA bölümünü okuyunuz).

Yine de bir çözüm önerisinde bulunayım (kesin çözüm için gerçek belgenin kopyası şeklinde bir örnek belge olmalıdır)
-- Userform görünür Excel ekranı görünmez durumda çalışıyorsanız Userform'a ait UserForm_QueryClose prosedüründe
ya da userform üzerindeki bir KAPAT düğmesiyle dosya kapatılıyorsa bu CommandButton kod blokunda,
Not: UserForm'a ait ShowModal özelliğine de bakmak lazım
-- değilse ThisWorkbook kısmına eklenecek ve dosya kapatılırken devreye girecek olan...
Application.Visible= False yerine
Aplication.Windows(ThisWorkbook).Visible = False yazın. userforum showmodal false yapın.


Veya başka bir alternatif Bu kodu bir deneyin.

Kod:
Görüntülemek için giriş yapmalısınız.
(12 satır)

bunlar olmadı ya maalesef :( ilk baştaki formülde zaten excel de UserForm da kafayı yedi. Sadece UserForm açıldığında UserForm içerisine verileri getirtemedim excel dosyasının şifresini girip açmafığım sürece. Böyle olunca da Exceli göstermenin bir anlamı yok. Yaptığım iş biraz karışık o yüzden nasıl yapacağım bilemedim :(
 
Application.visible = false kodu visible özelliğine application (excel) seviyesinde false değerini atıyor. Bunun yerine Aplication.Windows(ThisWorkbook).Visible = False işinizi çözmeli aslında ancak aynı anda açık kitap sayısına göre kodu da geliştirmek lazım. En ideal şekli değil ancak yinede fikir verebilecek örnek bir dosya ektedir.
 

Ekli dosyalar

  • excel gizleme.xlsm
    24.2 KB · Görüntüleme: 12
Application.visible = false kodu visible özelliğine application (excel) seviyesinde false değerini atıyor. Bunun yerine Aplication.Windows(ThisWorkbook).Visible = False işinizi çözmeli aslında ancak aynı anda açık kitap sayısına göre kodu da geliştirmek lazım. En ideal şekli değil ancak yinede fikir verebilecek örnek bir dosya ektedir.

Maalesef buda olmuyor ya :(. bütün exceller kapanıyor.
 
Merhaba.
Konu sahibinin değil de cevap yazanların örnek belge eklemesi ilginç olmuş.
Kesin çözüm için konu sahibinin örnek belge eklemesi yerinde olur (örnek belge konusunda cevabımın altındaki İMZA bölümünü okuyunuz).

Yine de bir çözüm önerisinde bulunayım (kesin çözüm için gerçek belgenin kopyası şeklinde bir örnek belge olmalıdır)
-- Userform görünür Excel ekranı görünmez durumda çalışıyorsanız Userform'a ait UserForm_QueryClose prosedüründe
ya da userform üzerindeki bir KAPAT düğmesiyle dosya kapatılıyorsa bu CommandButton kod blokunda,
Not: UserForm'a ait ShowModal özelliğine de bakmak lazım
-- değilse ThisWorkbook kısmına eklenecek ve dosya kapatılırken devreye girecek olan Workbook_BeforeClose prosedüründe
uygulanmak üzere aşağıdaki gibi bir kod yapısının sonuç vermesi lazım.

Tabi isteğe göre aşağıdaki koda Aplication.Visible ve ....Save satırları eklenmesi icap eder.
.
VBA:
Görüntülemek için giriş yapmalısınız.
(6 satır)
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
5
Geri
Üst