- Katılım
- 1 Ekim 2017
- Mesajlar
- 694
- Excel Vers. ve Dili
- 2019 türkçe
- Altın Üyelik Bitiş Tarihi
- 06/10/2023
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Hocam merhaba arama işlemi üstte sıralanan kişiyi çift tıkladığımda yandaki TextBoxlara aktarılacak orada yaptığım değişikliği kaydedilecek. Başlık satırı Bilgi sayfasında kaybolmaması gerekir. Yok eğer listboxta çıkmayacaksa önemli değil. İlginiz için teşekkür ederim. iyi çalışmalar dilerim.İlk olarak eklediğiniz dosyada kişisel bilgiler var. Bunlar doğruysa değiştirmenizde fayda var.
Sonrasında eğer arama işlemi sonucu veriler Listbox'a yüklenirse başlık satırını kaybedersiniz. Ama derseniz ki yardımcı bir sayfa kullanılabilir, bu durumda başlık satırı kullanılabilir.
Private Sub TextBox1_Change()
Dim S1 As Worksheet, Veri As Variant, Son As Long
Dim Ad As String, Aranan As String, X As Long, Say As Long
Set S1 = Sheets("BİLGİ")
Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
Veri = S1.Range("A3:W" & Son).Value
ReDim Liste(1 To UBound(Veri, 2), 1 To 1)
On Error Resume Next
ListBox1.Clear
ListBox1.RowSource = ""
On Error GoTo 0
If TextBox1 <> "" Then
For X = LBound(Veri) To UBound(Veri)
Ad = UCase(Replace(Replace(Veri(X, 3), "ı", "I"), "i", "İ"))
Aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ"))
If Ad Like "*" & Aranan & "*" Then
Say = Say + 1
For Y = 1 To UBound(Veri, 2)
ReDim Preserve Liste(1 To UBound(Veri, 2), 1 To Say)
Liste(Y, Say) = Veri(X, Y)
Next
End If
Next
If Say > 0 Then
ListBox1.ColumnCount = 16
ListBox1.ColumnWidths = 50
ListBox1.ColumnHeads = False
ListBox1.Column = Liste
End If
Else
Call listbox1_doldur
End If
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
sat = ListBox1.ListIndex
For i = 1 To 16
Controls("kay" & i) = ListBox1.Column(i - 1)
Next i
End Sub
Hayırlı sabahlar. Korhan hocam çok teşekkür ederim. Beni büyük bir stresten kurtardınız. Yaklaşık 10 gündür bu acemi halimle listboxu forumdaki konularda bulunan kodlarla çözmeye çalıştım. Ama bazen olmuyor işte. Hocam ALLAH razı olsun sizden. Hayırlı çalışmalar diliyorum.Arama işlemi İÇERİR mantığı ile yapılmaktadır.
C++:Private Sub TextBox1_Change() Dim S1 As Worksheet, Veri As Variant, Son As Long Dim Ad As String, Aranan As String, X As Long, Say As Long Set S1 = Sheets("BİLGİ") Son = S1.Cells(S1.Rows.Count, 1).End(3).Row Veri = S1.Range("A3:W" & Son).Value ReDim Liste(1 To UBound(Veri, 2), 1 To 1) On Error Resume Next ListBox1.Clear ListBox1.RowSource = "" On Error GoTo 0 If TextBox1 <> "" Then For X = LBound(Veri) To UBound(Veri) Ad = UCase(Replace(Replace(Veri(X, 3), "ı", "I"), "i", "İ")) Aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ")) If Ad Like "*" & Aranan & "*" Then Say = Say + 1 For Y = 1 To UBound(Veri, 2) ReDim Preserve Liste(1 To UBound(Veri, 2), 1 To Say) Liste(Y, Say) = Veri(X, Y) Next End If Next If Say > 0 Then ListBox1.ColumnCount = 16 ListBox1.ColumnWidths = 50 ListBox1.ColumnHeads = False ListBox1.Column = Liste End If Else Call listbox1_doldur End If End Sub
Ek olarak Listbox çift tıklama olayını da aşağıdaki gibi değiştirin.
C++:Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) sat = ListBox1.ListIndex For i = 1 To 16 Controls("kay" & i) = ListBox1.Column(i - 1) Next i End Sub
Hocam kaydet buonuna bastığımda 1. sıradaki şahısın sıra nosu 2 oluyor bu nasıl oluyor bilmiyorum. Sıra no değişmemesi gerekiyor.Buradaki uygulamanızda UserForm üzerinde SIRA NO verisi kilitli olması gerekmez mi? O kısmı değişmemesi için kilitlemeniz gerekir.
sonsatir = Sheets("BİLGİ").Range("Z2")
S1.Cells(sonsatir, 1) = sonsatir - 1
Hocam haklısınız. İnanın 50 yaşındayım bugüne kadar hiç kimseden ders almadım. 40 yaşına kadar Excel in ne olduğunu bilmiyordum. Kendi çabalarımla ve bu foruma üye olduktan sonra sizin gibi hocaların ve arkadaşlar sayesinde bir şeyler öğrendim. Kendi işimi daha fazla nasıl kolaylaştırırım niyetiyle çalışıyorum. Dediğiniz gibi bir çok proje inceledim belki 100 dosya indirdim ama yeteri kadar bilgi olmayınca olmuyor. Sizleri de rahatsız etmek istemiyorum ama mecbur kalıyorum. Benim gibileri de arada idare edin.Sayfadaki Z2 hücresinde formüller var. KAYDET butonu bu hücrelere bakıp işlem yapıyor.
A3 hücresindeki değeri 1 olarak düzelttiğimde Z2 hücresinde 3 yazıyor. Sonrasında KAYDET butonunda ki aşağıdaki kısım sıra numarasını güncelliyor.
Diyelim ki siz formu açtınız ve ListBox nesnesinde ilk kaydı çift tıklayıp seçtiniz.Kod:sonsatir = Sheets("BİLGİ").Range("Z2") S1.Cells(sonsatir, 1) = sonsatir - 1
Bu kaydın sıra numarası 1 olarak form üzerindeki nesneye yükleniyor. Siz KAYDET butonuna tıkladığınızda Z2 hücresinde 3 yazdığı için ve kod satırında siz 3-1 komutunu verdiğiniz için 2 olarak sayfaya yazıyor.
Forumda aslında veri yönetimi başlığı altında UserForm ile sayfaya kayıt işlemleri ile ilgili bolca örnek var. Bunları inceleyip kendinizi geliştirdikten sonra proje yapımına başlasaydınız bu sıkıntıları daha az yaşardınız. Bu sıkıntıyı maalesef birçok üyemizde gözlemliyoruz. Gelişim sağlamadan hemen proje yapımına girişiyorlar ve bu sorunları hep yaşıyorlar.