• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Soru Listboxlar yatay kaydırma çubuğu

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
11 Ağu 2021
Mesajlar
5,003
Çözümler
620
Aldığı beğeni
4,682
Excel V
Office 2024 TR
Konuyu Başlatan
Merhaba.

Çok araştırdım ama bulamadım.
Şimdi iki adet listbox var birisini başlık diğerini veriler için kullanmak için.

Verinin olduğu listboxtta yatay kaydırma çubuğunu sağa sola kaydırınca başlıkların olduğu listboxttaki yatay kaydırma çubuğu aynı anda paralel harekettir olayı lazım.

Dosya eklemedim bunun için gerek olmaz diye.Arşivinde vs.. olupta paylaşan olursa sevinirim.
 
Muhtemelen bu işi API çözer ama ben API kullanmayı bilmiyorum.
Bende bilmiyorum ve zaten çok çok gerekli olmadıkça uzman kişiler Api kullanmayı tavsiye etmiyorlar ama tabii bazen mecbur kullanıyoruz :)
 
Burda bulamayıp alttaki forumdan bulmuştum ve öncekş mesajda yazdığım hata oluyordu.

Bu kodlar VB6 için geçerli gibi görünüyor hocam, "Scroll" eventi excelde yok maalesef.

Hwnd kodundaki hatayı çözdüm hocam orada sorun yok ama aşağıdaki kodda listbox hwnd değerlerini 0 (Sıfır) alıyor onu çözemedim.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Kodu ekleyen kişi LbxInfo.hwnd = GetFocus ile hwnd değerini alacağını iddia etmiş ama her defasında 0 (Sıfır) getiriyor.

Ekli excel kitabında hWnd değerini almayı çözen kodlar var. Fakat yukarıda da bahsettiğim gibi listboxların hwnd lerini almamız lazım onu çözemedim.

FindWindows ile alınıyordur muhtemelen ama içindeki parametrelere ne yazılacağı hakkında en ufak bir fikrim yok.

Bu arada dosya içindeki hiç bir kod bana ait değil. Muhtelif sitelerden bulup ekledim.
 

Ekli dosyalar

  • Kitap1.xlsm
    22.4 KB · Gösterim: 4
Sağolun bendede yukardaki kısım hata vermişti ve unuttum ama lbxinfo parapetreden geliyordu ve listbox du.
Listbox özelliklerindede hwnd görememiştim.Dosyayı akşama doğru bir deneyeyim.
 
Son düzenleme:
Saşolun bendede yukardaki kısım hata vermişti ve unuttum ama lbxinfo parapetreden geliyordu ve listbox du.
Listbox özelliklerindede hwnd görememiştim.Dosyayı akşama doğru bir deneyeyim.
Hocam şimdi farkettim eklediğim kodlar farenin orta topu ile yukarı aşağı kaydırma kodlarıymış. Deneme yaparken farkettim. Yani kısacası bu kodlar da işe yaramaz. Burada da patladık. En azından elimizde farenon orta topu ile yukarı aşağı kaydırma kodları oldu orası ayrı tabi :)
 
:)
Fare kaydırma olayı benim arşivdede var ama hata olursa excel çöküyor bundan dolayı oda problem :)
FAre top olayı comboboxlara geçerli oluyor abey.
Neyse artık bekleyelim bakalım.
Burada da patladık. En azından elimizde farenon orta topu ile yukarı aşağı kaydırma kodları oldu orası ayrı tabi
 
:)
Fare kaydırma olayı benim arşivdede var ama hata olursa excel çöküyor bundan dolayı oda problem :)
FAre top olayı comboboxlara geçerli oluyor abey.
Neyse artık bekleyelim bakalım.
Evet fazlasıyla çökmeler yaşanıyor.
 
:)
Fare kaydırma olayı benim arşivdede var ama hata olursa excel çöküyor bundan dolayı oda problem :)
FAre top olayı comboboxlara geçerli oluyor abey.
fare ile dikey kaydırmada combobox ve listboxta sorun yaşamadım.
breakpoint ile adım adım kod kontrolü yapmak istediğinizde
scrool kodlarını devre dışı bırakmanız lazım.
Yoksa excel çöküyor.
 
breakpoint ile adım adım kod kontrolü yapmak istediğinizde
scrool kodlarını devre dışı bırakmanız lazım.
Yoksa excel çöküyor
Evet abey bunu gözlemlemiştim :)
Ayrıca hata oluncada çöküyordu.
 
Bu kodlar VB6 için geçerli gibi görünüyor hocam, "Scroll" eventi excelde yok maalesef.

Hwnd kodundaki hatayı çözdüm hocam orada sorun yok ama aşağıdaki kodda listbox hwnd değerlerini 0 (Sıfır) alıyor onu çözemedim.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Kodu ekleyen kişi LbxInfo.hwnd = GetFocus ile hwnd değerini alacağını iddia etmiş ama her defasında 0 (Sıfır) getiriyor.

Ekli excel kitabında hWnd değerini almayı çözen kodlar var. Fakat yukarıda da bahsettiğim gibi listboxların hwnd lerini almamız lazım onu çözemedim.

FindWindows ile alınıyordur muhtemelen ama içindeki parametrelere ne yazılacağı hakkında en ufak bir fikrim yok.

[COLOR=%s]Bu arada dosya içindeki hiç bir kod bana ait değil. Muhtelif sitelerden bulup ekledim.[/COLOR]
Dosyayı şimdi inceledim. GetFocus bu sadece yukardaki kodda var başka bir yerde yok.Bence bundan dolayı sıfır oluyor normalde GetFocus boş sonuç veriyor ama class içinde hwnd Long olarak tanımlandığı için sıfır oluyor.
Kısaca GetFocus a değer atanmıyor.
 
GetFocus olayı api koduymuş biraz araştırınca.
Değerler geliyor ama birşey olmuyor.


C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Ayrıca alttaki kod dosyada var ama hiç bir yerde kullanılmamış abey.Bence olay burda bitiyor ama nasıl olacak parametre içine listbox adlarını yazınca hata veriyor.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Ayrıca alttaki kod dosyada var ama hiç bir yerde kullanılmamış abey.Bence olay burda bitiyor ama nasıl olacak parametre içine listbox adlarını yazınca hata veriyor.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Bence adım adım ilerliyoruz. Bu işi yapabileceğiz gibi geliyor bana.
 
Bence adım adım ilerliyoruz. Bu işi yapabileceğiz gibi geliyor bana.
İnşaAllah :)
Bence devrim gibi birşey olur çözülürse :)
Bugün ve haftasonu çok vaktim olacak teferruatlıca bende uğraşacağım.
 
İnşaAllah :)
Bence devrim gibi birşey olur çözülürse :)
Bugün ve haftasonu çok vaktim olacak teferruatlıca bende uğraşacağım.
nesnenin ya da pencerenin hWnd özelliği ile API kullanabiliyoruz anladığım kadarıyla.
API ise kabaca windowsa "bu nesne şu konumda" ya da "bu nesnenin boyutları bunlar" gibi mesajlar gönderiyor.

Şimdi bu bilgiler ışığında şöyle bir şey denesek acaba nasıl bir sonuç alırız:
1. adım: Forma 2 tane listbox ve bir tane scrollbar ekle.
2. adım: Formdaki listbox nesnelerinin sütun genişliklerini ayarla ve scrollbar özelliğini aktif et.
3. adım: scrollbar'ın max ve min değerlerini ayarla.
4. adım: scrollbar change olayında API kullanarak listboxların kaydırma çubuğu konumunu ayarla.

Bu mantıkla bir yol alabiliriz diye tahmin ediyorum. Bir kaç deneme yaptım olmadı ama sanki çözüm böyle bir şey olacakmış gibi geliyor bana.
 
2 ve 3.yazdıklarınız benimde aklımda ama bilmiyorum olur mu?
Yada en iyisi extra bir scrollbar eklemeden başarabilmek olmazsa öylede iyi olur.
 
2 ve 3.yazdıklarınız benimde aklımda ama bilmiyorum olur mu?
Yada en iyisi extra bir scrollbar eklemeden başarabilmek olmazsa öylede iyi olur.
Ekstra scrollbar eklemeden başarabilirsek zaten muhteşem olur. Ama onun için bu sefer ilk çözmemiz gereken konu scrollbar'ın hareketinde bir olay tetikleyebilmek olacak. Ve benim o konu hakkında en ufak bir fikrim dahi yok. :oops:
 
burda yatay ve dikey kaydırmanın çalıştığından bahsedilmiş.
 
Linkteki dosyaları import edip yazdıklarını uygulayacağım akşama doğru.
 
Son düzenleme:
Geri
Üst