• DİKKAT

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

Listboxtan userforma veri alma

Katılım
19 Eylül 2017
Mesajlar
3
Excel Vers. ve Dili
excel 2013 türkçe
Merhaba.

Kamu kurumunda çalışıyorum. İşlerimizi kolaylaştırma adına tüm şube arkadaşlarımın firmaların verilerini tek dosyadan işleyip görüntüleyebilmesi için excel çalışması yapmaktayım. Bilgili forum üyeleri için basit gelebilir belki ama excel bilgim çok zayıf olduğundan bu çalışma aylarımı aldı. Artık ilerleme kaydedemediğimden buraya yazmak mecburiyetinde kaldım.

Userformu doldurduğumda kayıt yapabiliyorum. Fakat aynı firmanın aynı tesisi için mükerrer kayıt olmaması için kayıt değiştirme yapmalıyım. Firma textboxına yazdığım veri eğer listede var ise listboxta ilk iki sütünu görüntüleniyor. Değiştireceğim veriye listboxta çift tık yaptığımda userform üzerindeki ilgili tüm alanlara veriyi çekip üzerinde güncelleme yaptıktan sonra listeye ekle butonuyla bulunduğu satırda değişiklik yapmasını istiyorum. Bir de ikili comboboxları çalıştıramıyorum.

İlgilenecek olan forum üyelerine teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Merhaba.

Userformu doldurduğumda kayıt yapabiliyorum. Fakat aynı firmanın aynı tesisi için mükerrer kayıt olmaması için kayıt değiştirme yapmalıyım. Firma textboxına yazdığım veri eğer listede var ise listboxta ilk iki sütünu görüntüleniyor. Değiştireceğim veriye listboxta çift tık yaptığımda userform üzerindeki ilgili tüm alanlara veriyi çekip üzerinde güncelleme yaptıktan sonra listeye ekle butonuyla bulunduğu satırda değişiklik yapmasını istiyorum. Bir de ikili comboboxları çalıştıramıyorum.

İlgilenecek olan forum üyelerine teşekkür ederim.

Öncelikle foruma hoş geldiniz:)

Komutlar initialize esnasında " global failed " yaparak Set esnasında takılıyor.

Daha önemlisi, sayfaya geçmek ve form ile sayfa ilişkisini çıkarmak çok zor , bütün Application.visible=false ları ve form çarpısından dosyayı kapatmaları düzeltip tekrar yükler misiniz ? Soru ekindeki dosyalarda böyle özellikler ve kapanma sürprizleri değerli yardım dakikalarını boşa çıkarıyor. Bunlarla uğraşmaktan dosyaya dikkat toplanmıyor.
 
Son düzenleme:
Sn. Cems
Yazdığınıza binaen düzenlemeler yapıp ilk mesajdaki dosyamı güncelledim.
 
Yapılanlar :

1-Commandbutton1 altına
Kod:
 Sheets("Liste").select
ekledim, bu formun ilgileneceği sayfayı çağırıyor

2-Userform initialize kodlarında

Kod:
Private Sub UserForm_Initialize()
    Dim SEKTÖR As New Collection, S1 As Worksheet, X As Long, Veri As Range
    Set S1 = Sheets("veri")
    On Error Resume Next
    For X = 2 To S1.[A65536].End(xlUp).Row
 [b]   'SEKTÖR.Add S1.Cells(X, 1), CStr(S1.Cells(X, 1))[/b]
    Next
    ComboBox1.Clear
    For Each Veri In SEKTÖR
    ComboBox1.AddItem Veri
    Next
End Sub

koyu olan satır sorun yaratıyor ve bu anahtarın aynı anda başka yerde kullanıldığını söyluyordu, bunu ' işareti koyarak " görmezden gel" dedim ve userform çalıştı.

Comboboxlara siz form üstündeki adlarını bağlamak istemişsiniz . Bunlara bir istiamet göstermek gerek , o da combobox'un properties rowsource sinde sayfa adı ve nerden nereye olduğunu yazmanız gerek ( Liste!e2:e65536 gibi )

Bu dosyayı deneyin ve rowsourceları inceleyin. Aradaki textboxlar neden var , sayfada yazılı ise elde girmenin gereği neden olabilir diye düşündüm. Çünki bu formla önce bilgi gireceksiniz .Bu pozisyonda textboxlar tamam, ama comboboxlar sabit varolan veriyi getirir.

Yani burada bir karışıklık var. Form sayfaya bilgi göndermek içinse combo kullanmayın. Kullanırsanız da combo bir yere önceden depolanmış sabit bilgiyi tekrar yazmadan parametre bilgilerin olduğu bir sayfadan getirmek için olmalı, oradan eklenecek bilgi ile buraya yeni bir kayıt atmakta kolaylık olur.

Amacınız sayfaya depolanmamış bilgi göndermekse , o zaman combolar sadece sıkıntı zira olmayan veriyi ararsınız. Emin değilim ama ( bir yerde görmüştüm ) combo altında olmasa da combonun boş kutusuna yazdığınızda alıyor ve listeye düştüğü için de otomatik ekleniyordu. Bu şekilde bir deneyin.

Şu an kodlarınıza da çok aklım yatmadı zira baya bir farklı geldi. Denemenizi yine ilk mesajınıza ekleyin ve neler olduğunu yazın , ancak yarın bakabileceğim veya siteden kod ustaları bu farklı tarzı biliyor ya da çözebiliyor olabilir.
 

Ekli dosyalar

Son düzenleme:
Sn. Cems geç yanıt veriyorum yoğunluğumdan dolayı. Size amacımı net açıklayayım. Belki forumun diğer bilenleri de yardımcı olur.

Kullanıcı kişi bir firma kaydı yapacak. Bu veriler önceden kaydedilmediyse Listboxta görülmeyecek ve userformdaki veriler Listeye Ekle butonuyla excel tablosuna yeni kayıt olacak.

Eğer önceden kaydedilmişse listboxta gözükecek ve kullanıcı listboxa çift tıklayıp excel tablosundaki (liste sayfası) o satırın verilerini ilgili combobox, textbox ve listboxlara getirecek. Bu veriler yeni veri olmadığından (zaten kayıtlı firmanın verileri), yeni satıra mükerrer kayıt olarak değil de bir başka butonla (örn: değiştir) zaten bulunduğu satırdaki veriler değişecek, yani veri güncellemesi yapılacak.

Listboxta çift tıklama yapıldığında excel liste sayfasında var olan verilerin comboboxa gelmesi lazım. Eğer veri yoksa zaten boş kalacak.

Yukarıda belirttiğiniz koyu renkli satırı iptal etmeden userform bende çalışıyor ve rowsourcelara gerek kalmadan kodlarla excel veri sayfasından bilgileri comboboxlara alıyor.

Boyumu aşacak karmaşık bir işe giriştim ve devam ettiremiyorum. Emeğime yazık olmasını istemediğimden diğer forum üyelerinden de yardımcı olmalarını rica ediyorum.

Teşekkür ederim Sn. Cems ilgilendiğin için.
 
Kullanıcı kişi bir firma kaydı yapacak. Bu veriler önceden kaydedilmediyse Listboxta görülmeyecek ve userformdaki veriler Listeye Ekle butonuyla excel tablosuna yeni kayıt olacak.

Eğer önceden kaydedilmişse listboxta gözükecek ve kullanıcı listboxa çift tıklayıp excel tablosundaki (liste sayfası) o satırın verilerini ilgili combobox, textbox ve listboxlara getirecek. Bu veriler yeni veri olmadığından (zaten kayıtlı firmanın verileri), yeni satıra mükerrer kayıt olarak değil de bir başka butonla (örn: değiştir) zaten bulunduğu satırdaki veriler değişecek, yani veri güncellemesi yapılacak.

Listboxta çift tıklama yapıldığında excel liste sayfasında var olan verilerin comboboxa gelmesi lazım. Eğer veri yoksa zaten boş kalacak.

Bu kısımla tam ne düşündüğünüzü belki kendi yorgunluğumdan algılayamıyorum , ya da userform veya listbox'un yapabilecekleri dışında veya benim kıt bilgimi aşan şeyler öneriyorsunuz. Dosyanızın üzerine bir userform ve listbox attım her iki sayfanız için ve çok düzeltmeden örnek görebileceğiniz şekilde zamansızlıktan bıraktım, şu an üstünde duracak zamanım yok, en erken Cumartesi pazar ilgilenebilirim.

Siz bu örnek üstünde düşünün eksik fazlasını yanlışını bulun ve bundaki özelliklere göre düşüncelerinizi yeniden kurgulayarak burada yazın. Sizin dedikleriniz ve olan kodlarınızı ben anlayamıyorum. Ancak onlar da bir çözüm yolu olabilir , bana pratik gelmedi ya da bilmiyorum.

Tuşların altında şu an kod yok, textler combolar değil asıl bu tuşların kullanımı ile söylediğiniz kayıt değiştir sil vs olabilir. Sayfada boş sütunlar dertten başka bir şey değil , bu yüzden sildim . Zaten userform kullanacaksanız sayfa sadece veri deposudur, orada şekil olmasına gerek yok. Sütun genişlikleri ayarlanarak üstüste taşmasını engellemek dışında pek yapacak bir şey ; userform önde hep açık ve sayfa ulaşılamaz-kurcalanamaz kalacağından ben görmüyorum. Amaç da bu zaten, sayfaya müdahaleyi sıfırlayıp kesin ve tek bilgi ile uğraşmak için userform kullanılıyor.

Aklınızda olsun listbox sadece sayfanın aynasıdır , öte bir işlem yapılamıyor. Bir satıra tıklayınca textlere alınır ama , 500 satırda bu da zor. Bu yüzden ARA BUL tuşları listenin bazı kilit laflarını araştıracak şekilde kodlanarak konuyor ki , o kilitleri de sizden başkası bilemez. Listboxtan seçilen satıra işlem hataya sebep olabiliyor ama bu tuşlar kesin veri getirir.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst