Soru Çalışma kitabının adı hücreden alınabilir mi?

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Arkadaşlar,
Private Sub Workbook_Open()
Bu başlık altında aşağıdaki kod satırı var.
Windows("Kitap1.xlsm").Visible = False

Buradaki Kitap1.xlsm ifadesi A20 hücresinden alınabilir mi? Alınırsa bu kod parçacığına nasıl eklenir?
A20 hücresi aşağıdaki formülle çalışma kitabının adını buluyor.

=PARÇAAL(HÜCRE("dosyaadı";A1);BUL("[";HÜCRE("dosyaadı";A1))+1;UZUNLUK(HÜCRE("dosyaadı";A1))-BUL("[";HÜCRE("dosyaadı";A1))-(UZUNLUK(HÜCRE("dosyaadı";A1))-BUL("]";HÜCRE("dosyaadı";A1)))-1)
 
Katılım
29 Haziran 2018
Mesajlar
613
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Yanlış anlamadıysam Kitap1.xlsm yerine A20 hücresinde ne yazıyorsa o yazsın istiyorsunuz.

dosya=Range("A20").Value
Windows(dosya).Visible = False

Kodları işinizi görecektir. :)
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Sayın cengizdemir72,

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
If Workbooks.Count = 1 Then
.Visible = False
UserForm1.Show 0
Else
.Visible = True
dosya = Range("A20").Value
Windows(dosya).Visible = False
UserForm1.Show 0
End If
End With
End Sub

Kırmızı ile işaretli yer hata verdi. Kodu forumdan toparlamıştım. Bilgim fazla yok.
Acaba hata sadece kırmız ile işaretli yerde mi yoksa diğer kısımlardan mı kaynaklanıyor?
 
Katılım
29 Haziran 2018
Mesajlar
613
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Dosya adını alan formüllü A20 hücresinin bulunduğu kitap/sayfa aktif değilse o yüzden dosya adı düzgün alınmamıştır.
Eğer öyleyse dosya = Range("A20").Value kodunu ilgili dosya ve sayfadan alacak şekilde değiştirmek gerekir.

Dosya adını düzgün aldıysa gizlenmesi gereken kitap açık olmayabilir.
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Başka bir excel çalışma kitabı açıkken
Dosya adını formüllü A20 hücresinin bulunduğu kitaptan alan Çalışma Kitabını açıyorum.
Koda göre birden fazla çalışma kitabı açıkken Application gösterimi doğru komutu işlemesi gerekiyor, bu da her iki kitabın açık olduğunu gösteriyor.
Sonra açık durumda olan adını A20'den alan kitabın gösterimini kapatmak istiyorum.
Bu durumda yukarıdaki kodun çalışması gerekmez mi?
 
Katılım
29 Haziran 2018
Mesajlar
613
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
dosya = Range("A20").Value kodun altına

Msgbox dosya

kodunu eklermisiniz. Eğer mesaj kutusunda gizlenmesi gereken dosyanın adı yazıyorsa başka bir sorun vardır.

Eğer boş geliyorsa yada farklı bir şeyler yazıyorsa dosya adını alması gereken yerden almıyordur. Bu duruma göre kodları yeniden gözden geçirilebilinir.

Ek: hücredeki dosya adı örn. kitap1.xlsx gibi değilse, uzantısı yoksa)
kodu dosya = Range("A20").Value & ".xlsx" olarak değiştirmelisiniz. (makrolu dosya ise xlsm olmalı)
 
Son düzenleme:

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Sayın @cengizdemir72,
dosya = Sayfa1.Range("A20").Value şeklinde yazınca çalıştı.
Bu durumda sorun çözülmüş oldu. Teşekkür ederim.

Ekteki dosyamda farklı bir sorun gelişti.
Bilgisayarda herhangi bir excel çalışma kitabı açıkken yüklediğim dosyayı açarsanız önceki çalışma kitabı simge durumuna alınıyor, Userform1 gösteriliyor buraya kadar doğru
Burada Userform ile beraber bir de dosyasız excel gözüküyor, bunu nasıl yok edebilirim. Kod Bu Çalışma Kitabı kısmında.
 

Ekli dosyalar

Katılım
29 Haziran 2018
Mesajlar
613
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Sayın klop01 rica ederim :)

Ekli dosyaya erişemediğim için inceleyemedim ..
 
Üst