Vba kütüphane kayıt

Katılım
9 Ekim 2019
Mesajlar
10
Excel Vers. ve Dili
Excel başlangıç
Arkadaşlar merhaba ben kendi kendine excel öğrenmeye çalışan bir öğretmenim okula kütüphane programı almak indirmek yerine yazmayı tercih ettim ve yazmaya devam ediyorum user form üzerinden
Yalnız aşamadığım şu; kurallar gereği bir öğrenci 1 kitabı bırakmadan diğerini alamaz fakat user formda bunu yapamadım ikinci kaydı alabiliyor çare olarak öğrenci numarasını sabitler mükerrer hakkı verilmez ve sorumlu kitabın gelmediğini görünce yeni kayıt açamaz yani o öğrenciye ait tek bir satır verilir kitap gelince yeni kitap almak için (mükerrer hakkı olmadığından) eski kayıt düzenlenir ve yenisi verilir
yani (123 numaralı a öğrencisi x kitabını alır ve kayıt oluşur başka bir satırda kaydı olamaz desek ve yeni kitap alırken user form düzenleme ekranından verileri değiştirse) bu şekilde de eski kayıtlar silinir
Ben eski kayıtları silmek istemiyorum onun yerine kitap verilince buton üzerinden başka sheete yada dosyaya taşıma kodu var mıdır (öğrenci ayın birinde kaydı alınır altısında kitabı getirir ben bul kısmından öğrenci numarasını yazarak kitap kaydına ulaşırım oradan boş bıraktığım getiriş tarihini yazar kaydeder sonra tekrar bul butonundan öğrenci numarasını yazar gelen bilgileri taşı yada kopyala butonuyla başka sheete yada dosyaya taşırım/kopyalarım ardından eski bilgileri silip yeni kitap kaydını alırım)
Yapmak istediğim budur yardımcı olacaklara teşekkürler
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,106
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Bu şekilde anlaşmak zor olabilir. Örnek dosya paylaşırsanız daha doğru yardım alabilirsiniz.
Sorunuzdan anladığım kadarıyla sizin dosya yapınıza uygun çözüm şu şekilde olabilir.
Diyelim ki iki tane sayfanız var: Ödünç, Arşiv
Ödünç aktif kişiler sayfası, öğrenci kitabı aldığında kaydı bu sayfaya yapılır ve bu sayede hangi kitabın ödünçte olduğu ya da hangi öğrencide o an kitap olduğu bu sayfada görülebilir. Yapılan sorgulama sonucunda kitap alacak öğrencinin numarası bu sayfada var ise üzerinde kitap var demektir ve ikinci bir kitap verilmez, bu sayfada numarası yoksa kitap verilir.
Bir de eski kayıtların yer aldığı Arşiv sayfası. Buradan da eski kayıtlar takip edilebilir, öğrencinin hangi kitabı veya kitabı hangi öğrencinin aldığı bilgisine buradan ulaşılabilir.
Burada yapılacak olan öğrenci kitabı teslim ettikten sonra isminin diğer sayfaya taşınmasıdır bu da örnek olarak aşağıdaki kodlarla yapılabilir. Buradaki x değeri öğrencinin kaydının satır numarasıdır. (Userforma veriyi çağırdığınız yöntemle bu numarayı bulabilirsiniz)
Rich (BB code):
sonsat = Sheets("Arşiv").Cells(Rows.Count, "A").End(3).Row + 1 'Arşiv sayfasındaki son satırı bulur (A sütununa göre)
Sheets("Ödünç").Rows(x).Copy Sheets("Arşiv").Rows(sonsat) 'Ödünç sayfasındaki satırı arşiv sayfasına kopyalar
Sheets("Ödünç").Rows(x).Delete 'Ödünç sayfasındaki satırı siler
 
Katılım
9 Ekim 2019
Mesajlar
10
Excel Vers. ve Dili
Excel başlangıç
Merhaba,
Bu şekilde anlaşmak zor olabilir. Örnek dosya paylaşırsanız daha doğru yardım alabilirsiniz.
Sorunuzdan anladığım kadarıyla sizin dosya yapınıza uygun çözüm şu şekilde olabilir.
Diyelim ki iki tane sayfanız var: Ödünç, Arşiv
Ödünç aktif kişiler sayfası, öğrenci kitabı aldığında kaydı bu sayfaya yapılır ve bu sayede hangi kitabın ödünçte olduğu ya da hangi öğrencide o an kitap olduğu bu sayfada görülebilir. Yapılan sorgulama sonucunda kitap alacak öğrencinin numarası bu sayfada var ise üzerinde kitap var demektir ve ikinci bir kitap verilmez, bu sayfada numarası yoksa kitap verilir.
Bir de eski kayıtların yer aldığı Arşiv sayfası. Buradan da eski kayıtlar takip edilebilir, öğrencinin hangi kitabı veya kitabı hangi öğrencinin aldığı bilgisine buradan ulaşılabilir.
Burada yapılacak olan öğrenci kitabı teslim ettikten sonra isminin diğer sayfaya taşınmasıdır bu da örnek olarak aşağıdaki kodlarla yapılabilir. Buradaki x değeri öğrencinin kaydının satır numarasıdır. (Userforma veriyi çağırdığınız yöntemle bu numarayı bulabilirsiniz)
Rich (BB code):
sonsat = Sheets("Arşiv").Cells(Rows.Count, "A").End(3).Row + 1 'Arşiv sayfasındaki son satırı bulur (A sütununa göre)
Sheets("Ödünç").Rows(x).Copy Sheets("Arşiv").Rows(sonsat) 'Ödünç sayfasındaki satırı arşiv sayfasına kopyalar
Sheets("Ödünç").Rows(x).Delete 'Ödünç sayfasındaki satırı siler
Teşekkür ederim şuan pc yanımda değil yarın paylaşım yaparım
X dediğimiz değer kaydın başladığı satır numarası değil mi
 
Üst