Bul Değiştir Butonu

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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.
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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?
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Teşekkürler ama istediğim olmadı maalesef.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Dosyanız karışık olduğu için birazdan daha basit bir örnek hazırlayıp eklerim.
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Ö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.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Buraya ekleyebilirsiniz.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bende hazırlamıştım, inceleyiniz. Uyarlayamazsanız dosyanızı incelerim.
 

Ekli dosyalar

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Çok teşekkürler yardımlarınız için ancak uyarlamayı gerçekleştiremedim yardımcı olursanız sevinirim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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
 

onurgulin

Altın Üye
Katılım
14 Temmuz 2020
Mesajlar
10
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Çok teşekkürler ilginiz için.
 
Üst