Zimmetlemede isim denetimi yapmak.

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

Forumdan aldığım büyük destekle hazırladığım "ADİSYON ZİMMETLEME" programında son bir ayarlama yapmam gerekiyor. Zimmet yaptığım kişi işten ayrıldığı zaman üzerinde zimmetli bulunan kullanılmamış adisyonları seri aralığı belirterek silmek istiyorum. Bunula ilgili Sn. leventm beyin verdiği aşağıdaki kodları kullanarak bu işlemi gerçekleştirdim. Fakat küçük bir sorunum oluştu.

On Error GoTo 10
İLK = [E1:E65536].Find(TextBox6.Value).Row
SON = [E1:E65536].Find(TextBox7.Value).Row
Rows(İLK & ":" & SON).Delete


Þöyleki;

Textbox6 da aşağıdaki kodlarım var.

Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo 10
If TextBox6 = "" Then
Cancel = False
TextBox6.BackColor = vbWhite
Exit Sub
End If

Dim ARA As Range
Sheets("ZİMMET").Select
For Each ARA In Range("E2:E" & WorksheetFunction.CountA(Range("E1:E65536")))
If StrConv(ARA.Value, vbUpperCase) = StrConv(TextBox6.Value, vbUpperCase) Then

SATIR = Sheets("ZİMMET").[E2:E65536].Find(TextBox6.Value).Row
TextBox2 = Sheets("ZİMMET").Cells(SATIR, 3).Value
TextBox3 = Sheets("ZİMMET").Cells(SATIR, 4).Value
TextBox4 = Sheets("ZİMMET").Cells(SATIR, 6).Value
TextBox5 = Sheets("ZİMMET").Cells(SATIR, 7).Value
TextBox6.BackColor = vbWhite

Exit Sub
End If

Next ARA
10 MsgBox ("Girdiğiniz kayıt numarası bulunamamıştır."), vbExclamation, "DİKKAT !"
Cancel = True
TextBox1 = Date
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox6.SetFocus
TextBox6.BackColor = vbYellow
End Sub

Üstteki kodlarda Textbox6 ya girilen adisyon numarasını arıyor bulduğunda kişiye ait bilgileri diğer textboxlara getiriyor. Eğer bulamazsa uyarı veriyor.

Textbox7 de aşağıdaki kodlarım var.

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo 10
If TextBox7 = "" Then
Cancel = False
TextBox7.BackColor = vbWhite
Exit Sub
End If

Dim ARA As Range
Sheets("ZİMMET").Select
For Each ARA In Range("E2:E" & WorksheetFunction.CountA(Range("E1:E65536")))
If StrConv(ARA.Value, vbUpperCase) = StrConv(TextBox7.Value, vbUpperCase) Then

SATIR = Sheets("ZİMMET").[E2:E65536].Find(TextBox6.Value).Row
TextBox2 = Sheets("ZİMMET").Cells(SATIR, 3).Value
TextBox3 = Sheets("ZİMMET").Cells(SATIR, 4).Value
TextBox4 = Sheets("ZİMMET").Cells(SATIR, 6).Value
TextBox5 = Sheets("ZİMMET").Cells(SATIR, 7).Value
TextBox7.BackColor = vbWhite


Exit Sub
End If

Next ARA
10 MsgBox ("Girdiğiniz kayıt numarası bulunamamıştır."), vbExclamation, "DİKKAT !"
Cancel = True
TextBox7 = ""
TextBox7.SetFocus
TextBox7.BackColor = vbYellow
End Sub

Textbox7 ye ait kodlarda şu işlemi nasıl yaptırabilirim.

Textbox6 ya girdiğim değere göre Textbox7 ye girdiğim değeri "ZİMMET" sayfasında "E" sütununda arayacak aynı zamanda Textbox6 daki değerle aynı kişiye ait olup olmadığını denetleyecek. Eğer Textbox7 deki değer farklı bir kişiye aitse uyarı versin istiyorum. Ayrıca Textbox7 deki değer "ZİMMET" sayfasında "E" sütununda yoksa yine uyarı versin. Bunun nedeni ise silme işleminde olabilecek yanlışlıklara bir nebze olsun engel olabilmek. Kodlarda birkaç değişiklik yapıp denedim ama olmadı.

Yardımlarınızı bekliyorum.

İyi çalışmalar dilerim. :hey:
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar bu konuda bana yardımcı olacak kimse yokmu !!! :yardim:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sorunuzun net anlaşılması için dosyanızı eklermisiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ã?rnek dosya ektedir... (Vba=19731977)

Bu dosyanın oluşmasında emeği geçen forumdaki tüm arkadaşlarıma çok teşekkür ediyorum. :D

İlgili örnek dosya ile ilgili geliştirici ve eleştirici fikirlerinizi merakla bekliyorum.

Gerçi konuyla ilgili kendimce bir çözüm ürettim ama tam istediğim olmadı.
Aslında yapmak istediğim şey;

Zimmet Dönüş Formunda seri olarak adisyonu zimmetten düşmek istediğimde textbox6 ya adisyon seri ilk no giriyorum eğer girdiğim numara kayıtlarda varsa bana o kayıda ait bilgileri getiriyor.(Diğer textboxlara geliyor bu bilgiler)

Textbox7 ye adisyon seri son no girip entere bastığımda yine girdiğim numaranın kayıtlarda olup olmadığını sorgulamasını ve textbox6 ya girilen numarayla aynı kişiye ait olup olmadığını sorgulamasını istiyorum. Eğer textbox7 ye girilen numara farklı bir kişiye ait ise aşağıdaki şekilde uyarı mesajı verdirmek istiyorum. Buradaki amacım farklı personel ait kayıdın silinmesini engellemek.

Mesaj Formatı;

Dikkat !

Girdiğiniz adisyon bitiş numarası "Ã?RNEK" isimli personele ait.
Lütfen girdiğiniz değerleri kontrol ediniz.


İyi çalışmalar diliyorum. :hey:
 
Üst