UserForm Farklı sayfalardan Veri alma

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
508
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Arkadaşlar Excel dosyamda 10 tane çalışma sayfası var. Bu sayfaların tamamında aynı sütunlarda aynı tür veriler var.
Ben bir tane UserForm oluşturup (Her sayfa için ayrı bir UserForm oluşturmak yerine) UserForm açıldığında "İmleç" hangi sayfada ise yani hangi çalışma sayfası aktif ise o sayfadaki verileri alması için UserForm'a nasıl bir kod eklemek gerekir.
Bu Formda daha önce yapılan bir Userform'u kullandım Bu formun kod sayfasının ilk satırı aşağıdaki kod ile başlıyor

"Const sayf1 = "Sayfa1" ' sayfa adı

Ben burada UserForm'daki kodda "Sayfa1" manuel olarak "Sayfa2" ismini değiştirirsem form o çalışma sayfasından veri alıyor. Bunu otomatik nasıl yapabiliriz. Yani imleç hangi sayfada ise (hangi sayfa aktif ise) UserForm o sayfadan veri alacak. Çalışma sayfa sayısı çoğalsa bile aynen çalışması lazım.
Ben CommandButton ile önce ilgili sayfaya imleci götürüp yani aktif edip sonra UserForm'un açılmasını saylıyorum.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,177
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sheets("Sayfa1").Range("A1") = "Deneme" şeklinde kullanırsanız sayfayı belirtmiş olursunuz. Aşağıdaki gibi kullanırsanız sayfa belirtmediginiz için aktif sayfa dikkate alınır.

Range ("A1") = "Deneme"

Kendi kodlarınızı bu duruma göre revize edersiniz.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,855
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Const sayf1 = "Sayfa1" ' sayfa adı
yukarıdaki bölümün yerine aşağıdaki bölümü ekle
Dim sayf1


userformun içine bu kodu ekle

Kod:
Private Sub UserForm_Activate()
sayf1 = ActiveSheet.Name
End Sub
veya

Kod:
Private Sub UserForm_Initialize()
sayf1 = ActiveSheet.Name
End Sub
böylece sayfa ismi aktif sayfa olacaktır.
 
Son düzenleme:

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
508
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Arkadaşlar yukarıdaki konunun devamı olarak UserForm Hangi sayfadan veri alacaksa "ComboBox1" o sayfada "C2" den başlayarak çeşitli sayılardan oluşan konu başlıkları var. Bazı sayfalarda Başlık sayısı fazla bazılarında az. Ben ister istemez en uzun Başlık listesi olan çalışma sayfasındaki satır sayısını baz alarak hücre aralığını belirledim. Bu şu sonucu doğurdu "UserForm" Başlık sayısı az olan Çalışma sayfasına geldiğinde "ComboBox1" açılır listesinde çok boşluk görünüyor.
Bunu Dinamik olarak görünmesi için formül gibi veya UserForm içine kod şeklinde ayarlama imkanı var mı
Aşağıdaki örnek resimdeki kısım için


243372
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,177
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Userform açılırken bu veri yükleme işlemini kodla yapabilirsiniz.

ComboBox1.RowSource = "C2:C" & Cells(Rows.Count, 3).End(3).Row
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
508
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Userform açılırken bu veri yükleme işlemini kodla yapabilirsiniz.

ComboBox1.RowSource = "C2:C" & Cells(Rows.Count, 3).End(3).Row
Korhan Bey yukarıdaki kod güzel çalışıyor.
Şimdi sıkıntı gibi görünen şu. yeni bir "ComboBox" ekledim ve o ComboBox listesine Çalışma Sayfası isimlerini otomatik getirtiyorum ve ComboBox4 deki sayfa ismine Tıklatınca ilgili çalışma sayfasına gidiyor. Ama UserForm daki sizin yukarıda yazdığınız
"ComboBox1.RowSource = "C2:C" & Cells(Rows.Count, 3).End(3).Row" kodu devreye girmiyor. UserForm'un "Yenile(F5)" yapması lazım Formdaki konuları araştırdım bu konuda bazı (hatta sizin cevapladığınız kodlar var ama çalışmadı.
Ben bunu geçici olarak her "ComboBox4 " tıklattığımda
Unload Me
UserForm.Show

ile çözmeye çalışıyorum. Bunun yerine, "ComboBox4" Listedeki her tıkladığımda UserForm (ComboBox1 deki listenin güncellenmesi için) UserForm'u yenileme yapacak bir kod olabilirse çok daha iyi olacak
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,177
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerdiğim kodu bahsettiğiniz işlemin olduğu yere yazmayı deneyiniz.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
508
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Önerdiğim kodu bahsettiğiniz işlemin olduğu yere yazmayı deneyiniz.
Koray Bey dediğinizi yaptım. ComboBox daki veriler de güncelleniyor. Ama Güncellenen listedeki başlığa tıklayınca çalışmıyor. UserFormun yenilenmesi(F5) olması gerekiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,177
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çalışmıyor göreceli bir kavram...

Neyi nereye nasıl yaptığınızı bilemiyorum. Örnek dosyada yok. Sanırım sihirbazlık yapacağız.
 
Üst