Textboxlardaki Veriyi Bul Değiştir ve Kaydet

Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Merhabalar;

3 Adet Textbox var
1.Textbox1.Text ve Textbox2.Text değerlerini sayfanın A ve B sütunlarında arayıp eşleşen veriyi Textbox3.Text değerini C sütununda nasıl değiştirebilir.
2.Eşleşen veri bulunmuyorsa en alt satıra nasıl ekleme yapabiliriz.

Teşekkürler.
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Sub değiştir()

With Sheets("Yıl")
sat = .Cells(Rows.Count, "A").End(xlUp).Row
Set ara = .Range("A1:A" & sat).Find(TextBox5.Text, , xlValues, xlWhole)
If Not ara Is Nothing Then
If TextBox6.Text = ara.Offset(0, 2).Value Then
ara.Offset(0, 1).Value = TextBox7.Text
Else
MsgBox TextBox5.Text & " Bulunamadı!!", vbCritical, "B U L U N A M A D I"
End If
End If
End With
Set ara = Nothing
End Sub

Bu kod düzenleme yapıyor ama doğrumu yaptım bilemedim kontrol eder misiniz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

İlk mesajınızda verdiğiniz nesne numaraları sonradan değişti sanırım...

Aynı şekilde OFFSET değerleride değişmiş görünüyor..

Kod eğer bu haliyle istediğiniz sonucu veriyorsa doğrudur diyebiliriz..
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Evet değiştirdim fakat şöyle bir sıkıntı çıktı A sütununda birden fazla aynı veri olunca sadece ilk veriyi güncelleme yapıyor sanki textbox6 değerinin C sütununa eşit olmasına bakmıyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eğer aranan veri birden fazla satırda varsa kullandığınız kod ilk bulduğu satır için işlem yapar. Diğerleri için devam etmek istiyorsanız kodu döngüye bağlamanız gerekir..
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Sub Değiştir()
Dim aranan, adrs As String
Dim ara As Range
aranan = TextBox5.Text
With Sheets("kapanış")
sat = Cells(Rows.Count, "A").End(xlUp).Row
Set ara = .Range("A2:A" & sat).Find(aranan, , xlValues, xlWhole)
If Not ara Is Nothing Then
adrs = ara.Address
Do
If TextBox6.Text = ara.Offset(0, 2).Value Then
ara.Offset(0, 1).Value = TextBox7.Text
Else
MsgBox TextBox5.Text & " Bulunamadı!!", vbCritical, "B U L U N A M A D I"
End If
Set ara = Range("A2:A" & sat).FindNext(ara)
Loop While Not ara Is Nothing And ara.Address <> adrs
End If
End With
End Sub

Kodda şöyle bir sıkıntı var, Textbox5 'teki veri A sütununda olmasına karşın devamlı MsgBox bulunamadı uyarısı verip işleme devam ediyor ve sonucu doğru yere yazıyor. Nerde hatam var bulamadım yardımcı olur musunuz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya paylaşabilirseniz destek almanız kolaylaşır.
 
Üst