Merhaba İyi Pazarlar Herkese
Uygulamamda menu sekmesinde Bayi Formu tıklandığında userform açtırıyorum. Devamında Firma Ünvanı Comboboxında silmek istediğim firmayı seçip userform üzerine firma bilgilerini aldıktan sonra sil butonuna tıklayarak silmek istiyorum. Uygulamada daha önce bu işlem Firma ID bilgisi üzerinden arama yaptırılarak bilgiler ekrana getiriliyor ve kayıt sil butonu ile gerçekleştiriliyordu. Uguladığım bu yöntemi zaman alması ve hantal olması sebebiyle değiştirmek istiyorum. Yardımlarınız için teşekkür ederim.
Merhaba alttaki kod işinizi görür.Combo seçilince ComboBox_FirmaUnvani.Tag buna satır no geliyordu varsa.Comcodan seçilen yoksada mesaj yazdırdım yani fazla kod eklemedim.
Kısaca
Kod:
.Rows(ComboBox_FirmaUnvani.Tag).EntireRow.Delete
ekledim
Kod:
.Rows(ActiveCell.Row).Delete
yerine.
Private Sub btn_KayitSil_Click()
If MsgBox("Veriler Silinecek, Emin misiniz...?", vbExclamation + vbYesNo, "Firma Tanýmlama Formu") = vbNo Then Exit Sub
With ThisWorkbook.Worksheets("Ana_Sayfa")
If ComboBox_FirmaUnvani.Tag = "" Then
MsgBox "Kayit bulunamadi..", vbCritical, "Hata"
Exit Sub
End If
.Unprotect "171717"
.Rows(ComboBox_FirmaUnvani.Tag).EntireRow.Delete
.Protect "171717"
Call temizle
TextBox_Tarih = Format(Date, "dd.mm.yyyy")
End With
TextBox_Tarih.SetFocus
With TextBox_Tarih
.SelStart = 0
.SelLength = .TextLength
End With
btn_KayitEkle.Enabled = True
End Sub
Feraz Hocam o kısacık kod için göbeğim çatladı 2 gündür nette izlemediğim video kalmadı bana uygununu bir türlü bulamadım. Çok teşekkür ederim. Sorunum çözülmüştür.
Rica ederim abey.Önceden halil hocamız tag ile satır no buldurmuştu find kullanarak.Kullanmasaydı burdada aynı find kullanacaktım bukez tag olmadan.Kolay gelsin.
Abey bence tag yöntemi ile yapılan sorun çıkartabilir.
En iyisi alttaki kodu kullanın.
Private Sub btn_KayitSil_Click()
Dim bul As Range
If MsgBox("Veriler Silinecek, Emin misiniz...?", vbExclamation + vbYesNo, "Firma Tanymlama Formu") = vbNo Then Exit Sub
With ThisWorkbook.Worksheets("Ana_Sayfa")
Set bul = .Range("A:A").Find(TextBox_ID.Value, , xlValues, 1)
If bul Is Nothing Or TextBox_ID.Value = "" Then
MsgBox "Kayit bulunamadi..", vbCritical, "Hata"
Set bul = Nothing
Exit Sub
End If
.Unprotect "171717"
.Rows(bul.Row).EntireRow.Delete
Set bul = Nothing
.Protect "171717"
Call temizle
TextBox_Tarih = Format(Date, "dd.mm.yyyy")
End With
TextBox_Tarih.SetFocus
With TextBox_Tarih
.SelStart = 0
.SelLength = .TextLength
End With
btn_KayitEkle.Enabled = True
End Sub
Silme kodundan sonra .tag="" gibi boşaltma kodunun eklenmesi yeterli olmaz mi?
Sizce tag hangi durumlarda sorun çıkarabilir @
feraz hocam?