• DİKKAT

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

Bul Değiştir Butonu

Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Merhabalar, bir konuda yardımınızı rica edeceğim. Eşim bankada çalışıyor ve hedef takip etmesi zor diye ona bir uygulama hazırladım ancak userforma bul ve değiştir butonunu ekleyemedim. Bu konuda bana yardımcı olabilirseniz sevinirim. Herkese iyi günler dilerim.
 

Ekli dosyalar

Aşağıdaki kodları kendinize revize ederseniz . Bu konudaki güzel kodlardan biri.
Veri isimli sayfa aramanın yapıldığı sayfa
Kod:
Private Sub TexBox1_Change()

    Dim Bul

    On Error Resume Next

    Bul = Sheets("VERİ").Range("B2:B100000").Find(What:=TexBox1, LookIn:=xlValues, LookAt:=xlWhole).Row

    TexBox2.Value = Sheets("VERİ").Cells(Bul, 3).Value

    TexBox3.Value = Sheets("VERİ").Cells(Bul, 4).Value

    ComboBox1.Value = Sheets("VERİ").Cells(Bul, 5).Value

    ComboBox2.Value = Sheets("VERİ").Cells(Bul, 6).Value

End Sub
 
Burada bir bilgiyi tekrar hatırlatmakta fayda görüyorum.

"On Error Resume Next"

Üstteki satırın kullanımını yeni kod yazmayı öğrenen üyelerimiz bir şekilde alışkanlık haline getirdiklerini gözlemliyorum.

Bu kod satırı tüm hataları gözardı et anlamına gelmektedir. Bu aslında çok tehlikeli bir durumdur. Kullanımı oldukça risklidir. Veri kaybına yol açabilir.

Bunun yerine kodun verebileceği hata durumları düşünülerek buna uygun kod blokları yazılması daha uygun olacaktır. Bunun için hata kontrollerinin öğrenilmesi fayda sağlayacaktır.
 
Aşağıdaki kodları kendinize revize ederseniz . Bu konudaki güzel kodlardan biri.
Veri isimli sayfa aramanın yapıldığı sayfa
Kod:
Private Sub TexBox1_Change()

    Dim Bul

    On Error Resume Next

    Bul = Sheets("VERİ").Range("B2:B100000").Find(What:=TexBox1, LookIn:=xlValues, LookAt:=xlWhole).Row

    TexBox2.Value = Sheets("VERİ").Cells(Bul, 3).Value

    TexBox3.Value = Sheets("VERİ").Cells(Bul, 4).Value

    ComboBox1.Value = Sheets("VERİ").Cells(Bul, 5).Value

    ComboBox2.Value = Sheets("VERİ").Cells(Bul, 6).Value

End Sub
Yardımlarınız için çok teşekkürler. Son bir yardım ricam daha olacak mümkünse. Veriyi bulduktan sonra değiştirmek için değiştir butonu yapmak istiyorum. Bu konudada kod anlamında yardımcı olabilirseniz sevinirim.
 
Burada bir bilgiyi tekrar hatırlatmakta fayda görüyorum.

"On Error Resume Next"

Üstteki satırın kullanımını yeni kod yazmayı öğrenen üyelerimiz bir şekilde alışkanlık haline getirdiklerini gözlemliyorum.

Bu kod satırı tüm hataları gözardı et anlamına gelmektedir. Bu aslında çok tehlikeli bir durumdur. Kullanımı oldukça risklidir. Veri kaybına yol açabilir.

Bunun yerine kodun verebileceği hata durumları düşünülerek buna uygun kod blokları yazılması daha uygun olacaktır. Bunun için hata kontrollerinin öğrenilmesi fayda sağlayacaktır.
Uyarınız için teşekkürler.
 
Merhaba,

Ters yazıldığı zaman hücreye nesnedeki değerleri yazmış olursunuz.

TexBox2.Value = Sheets("VERİ").Cells(Bul, 3).Value
yerine
Sheets("VERİ").Cells(Bul, 3).Value = TexBox2.Value

İstediğiniz bu mu?
 
Merhaba,

Ters yazıldığı zaman hücreye nesnedeki değerleri yazmış olursunuz.

TexBox2.Value = Sheets("VERİ").Cells(Bul, 3).Value
yerine
Sheets("VERİ").Cells(Bul, 3).Value = TexBox2.Value

İstediğiniz bu mu?
Tekrar merhabalar istediğim bulduğum verileri değiştirdikten sonra aynı sayfada aynı satıra kaydetmek.
 
Yukarıdaki örneğe göre eşitlikleri ters yazarsanız istediğin olur diye düşünüyorum.
Aşağıdaki gibi. Diğer kod işinize yaradığını için oradan ilerledim.
VERİ sayfası B sütununda TexBox1 değeri bulur, bulduğu satırdaki verileri TexBox2-3 ve ComboBox1-2 deki değerleri getirir.
Kod:
Private Sub degistir()
    
    Dim Bul

    Bul = Sheets("VERİ").Range("B2:B100000").Find(What:=TexBox1, LookIn:=xlValues, LookAt:=xlWhole).Row

    Sheets("VERİ").Cells(Bul, 3).Value = TexBox2.Value

    Sheets("VERİ").Cells(Bul, 4).Value = TexBox3.Value

    Sheets("VERİ").Cells(Bul, 5).Value = ComboBox1.Value

    Sheets("VERİ").Cells(Bul, 6).Value = ComboBox2.Value
    
End Sub
 
Dosyanız karışık olduğu için birazdan daha basit bir örnek hazırlayıp eklerim.
 
Örnekleyecek olursam tarih ile arama yapıp verileri userforma çektikten sonra yaptığım değişiklikleri aynı sayfadaki aynı hücrelere kaydetmek istiyorum. Benim yaptığım kaydet butonu ile alttaki boş satıra atıyor oda benim işime yaramıyor maalesef.
 
Buraya ekleyebilirsiniz.
 
Bende hazırlamıştım, inceleyiniz. Uyarlayamazsanız dosyanızı incelerim.
 

Ekli dosyalar

Çok teşekkürler yardımlarınız için ancak uyarlamayı gerçekleştiremedim yardımcı olursanız sevinirim.
 
CommandButton5 kodlarını aşağıdakiyle değiştirip deneyiniz.
Kod:
Private Sub CommandButton5_Click()

    Dim S1 As Worksheet, c As Range, i As Byte
    
    Set S1 = Sheets("Ana Sayfa")

    Set c = S1.[A:A].Find(CDate(TextBox1), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        For i = 2 To 19
            Controls("TextBox" & i) = S1.Cells(c.Row, i)
        Next i
    End If

End Sub
 
Çok teşekkürler ilginiz için.
 
Geri
Üst