• DİKKAT

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

UserForm Farklı sayfalardan Veri alma

  • Konbuyu başlatan Konbuyu başlatan asdsxx
  • Başlangıç tarihi Başlangıç tarihi

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
510
Excel Vers. ve Dili
Excel 2016 Türkçe
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:
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.
 
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:
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
 
Userform açılırken bu veri yükleme işlemini kodla yapabilirsiniz.

ComboBox1.RowSource = "C2:C" & Cells(Rows.Count, 3).End(3).Row
 
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:
Önerdiğim kodu bahsettiğiniz işlemin olduğu yere yazmayı deneyiniz.
 
Ö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.
 
Ç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.
 
Geri
Üst