İzin kayıt sistemi hk.

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Merhaba, ekte eklediğim dosyada bir takım yardımlara ihtiyacım var.

Şimdi Sayfa1'de log kısmı gibi bir ekranımız var. Formu aç dediğinizde Ad Soyad kısmının seçilebilir bir liste şeklinde gelmesini ve bunu personeller sayfasından otomatik çekmesini istiyorum.

Atıyorum ad soyad kısmında seçilebilir bir listeden personeller sayfasından otomatik çekeceği için Recep Tokgöz'ü seçtiğimizde Sicil numarası müdürlüğü otomatik gelmeli forma.. Birde altta hangi yıldan kullanım kısmıda seçilebilir listbox şeklinde olmalı zira imar ve emlak gibi farklı sayfalar içersinde kişiye ait farklı yıllarda toplam izinler mevcut. Atıyorum Recep Tokgöz'ü seçti diğer bilgiler geldi hangi yıldan kullanım kısmındada 2019'u seçti şuan mevcut excelde kullanılan izni 17 kalan izni 13 yazıyor. 3 Gün kullandıysa burasınında otomatik değişmesi gerekiyor. Yani 2019 yılı sutununda kullanılan 20 kalan 10 a dönmesi gerekiyor. Kalan İzin 0 oluncaya kadar kullanılabilecek.

Sonrasında izin başlangıç ve izin bitiş tarihi girilip kaydet dedikten sonra zaten Sayfa1'e kendisi log olarak atıyor.

Bu şekilde bir düzenleme istiyorum. Gerekirse ücretli destekte alabilirim, umarım akıcı anlatabilmişimdir..
 

Ekli dosyalar

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Ad soyad çekmeyi yaptım, Fakat hangi yıldan kullanım konusu ve devamında takıldım... Güncellenmiş dosya aşağıda
 

Ekli dosyalar

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
527
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Kişinin sicil no ve müdürlük bilgilerinin gelmesi için:

Kod:
Private Sub ComboBox1_Change()
Dim p As Worksheet
Set p = Sheets("personeller")
TextBox1_ID.Value = Application.WorksheetFunction.Index( _
p.Range("A:C"), Application.WorksheetFunction.Match(ComboBox1.Value, p.Range("B:B"), 0), 1)
TextBox3.Value = Application.WorksheetFunction.Index( _
p.Range("A:C"), Application.WorksheetFunction.Match(ComboBox1.Value, p.Range("B:B"), 0), 3)
End Sub
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
@unlimitted teşekkür ederim dosyanın son hali şu şekilde oldu..

Kalanlar;

Hangi yıldan kullanım
Ve kullanım sonrası ilgili sayfalar izin kısmından düşme
 

Ekli dosyalar

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Kalanlar;


Misal
Recep Tokgöz seçildiğinde imar sayfasında oldugu için, yıl bilgilerini getirmesi lazım su sekil. Tabi emlak sayfasındaysa ona göre bilgilerini getirmesi gerekiyor. Yani hangi sayfadaysa oradan..

2021
2020
2019
2018
vs
vs

hatta şu şekil olabilirmi bilmiyorum ama misal sadece kalan izni olanları getirecek, 0 olanları getirmeyecek
2021 (21)
2019 (13)

Birde İzin Gün sayısı, ilgili kullanım yılındaki kalan izin sayısından düşüp, kullanılan izin kısmına eklenecek
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Dosyayı buldum. İşinize yarayabilir. Gelişiminize yardımcı olabilir. vba şifresini unuttum maalesef.
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
31.07.2021 Saat 03:41
Comboboxlar halledildi..

Geriye tek kalan, başlangıç ve bitiş tarihi girildikten sonra çıkan otomatik "İzin Gün Sayısı" kısmındaki rakamın, bir altında hangi tarihten seçilmişse "hangi yıldan kullanım" yıla göre

seçilen kişinin sayfasındaki kullanılan izin kısmına + olarak eklenirken, kalan izin kısmından - olarak cıkarılması umarım yardımcı olan olur..

Dosya üzerinden örneklendireyim;
Seçilen kişi Recep Tokgöz olsun. İzin başlangıç 30.07.2021 izin bitiş 30.07.2021 izin gün sayısı otomatik olarak 1 geldi..
Şimdi bu 1 günüde bir alttaki comboboxdan 2019 yılını seçtiğimizi varsayalım

Şuanda kaydetmedik Recep Tokgöz'ün ilgili sayfasına bakıyoruz 2019 yılında 13 kalan, 17 kullanılan var..

İşlemi kaydettikten sonra 12 kalan, 18 kullanılan olmalı..
 

Ekli dosyalar

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
#9 nolu postta güncellenmiş dosya bulunmakta ve orada tek eksiğim kaldı. Yardım edebilecek biri var mı?
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
527
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Merhaba,
Userform'daki combobox2'de gösterilen hangi yıldan ne kadar izin kaldığına dair yazılan parantez içerisindeki bilgiden feragat ederseniz istediğiniz son adımı ekteki dosyaya uyarladım.
Combobox2.value nesnesini tarih olarak tanımladım. Nesne içeriğinden bir kısmı atarak kalanı bir nesne haline getirmek mümkün mü bilmiyorum.
 

Ekli dosyalar

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
@unlimitted hocam çok teşekkür ederim, ama o parantez göstergesi önemli sebebi kaydı girecek kişinin o yıla ait toplamda kaç izni oldugunu görebilmesi lazım aksi takdirde hakkı olan izinden fazla izin girebilir. Mesela o alana getirdiğimiz veriyi Sayfa1'deki G sutununa yazdırırken Left(ComboBox2.Value, 4) su sekilde sadece tarihi attırıyoruz. Aynı mantıkta sizdede olamazmı?
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
@unlimitted hocam yazdığınız koddaki eksiyi artı yaptım

sf1.Cells(kişi.Row, Tarih.Column) = sf1.Cells(kişi.Row, Tarih.Column) + UserForm1.TextBox6.Value

Fakat birde onun tam alt satırından cikarmasi gerekiyor. Onu nasıl yapabiliriz peki? Yani yukardaki bu kod kullandığı izne artı olarak ekliyor. Bir kod daha lazımki aynı miktarın kalan izinden çıkartılması için



Kod:
 If Not Tarih Is Nothing Then
                                sf1.Cells(kişi.Row, Tarih.Column) = sf1.Cells(kişi.Row, Tarih.Column) + UserForm1.TextBox6.Value
                                sf1.Cells(kişi.Row + 1, Tarih.Column) = sf1.Cells(kişi.Row + 1, Tarih.Column) - UserForm1.TextBox6.Value
                                 End If
şu şekilde yaptım ama mantık hatası var mı sizce? çalısıyor istediğim gibi ama..

Şimdide şöyle bir problem cikiyor. Sayfa1'deki verileri temizlediğimde comboboxa kişiler gelmiyor kafam cok karıstı cozemedim. Ve birde combobox'da boş satırlar cikiyor altta :(
 
Son düzenleme:

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Birçok kişinin yardımıyla büyük aşamalar bitti. Herkese çok teşekkür ediyorum.

Şuanda Kalanlar;
1. Sayfa1'deki kayıtları temizlediğimde Combobox1'e kişiler gelmiyor
2. Formu doldurup kaydet dediğimde, Combobox2'deki verileri tekrar çekip güncel halini görmek istiyorum
3. Combobox'larda fazlada boş satırlar gözüküyor bunun düzeltilmesi gerekiyor

Bu konularda yardımcı olabilirseniz çok sevinirim..
 

Ekli dosyalar

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
527
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
1. ve 3. sorunuzun cevabı: Combobox1 verilerinizi sayfa1'den değil personeller sayfasından aldırıyordunuz. Bence oradan devam edebilirsiniz. oradaki kodlarınıza dokunmamıştım ben. Ama ben olsam şu şekilde değiştiririm. Korhan hocamın dediği gibi, her yiğidin yoğurt yiyişi farklı.
Kod:
Private Sub UserForm_Initialize()
son = Sheets("personeller").Range("B" & Rows.Count).End(3).Row
For i = 2 To son
ComboBox1.AddItem Sheets("personeller").Range("B" & i).Value
Next
End Sub
2. sorunuza cevap olarak Userformun kapanıp geri açılması yetecekse kaydet düğmenizin kodlarının en altına şu kodları ekleyin:
Kod:
Unload userform1
Userform1.Show
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
1. soru için çözümünüz çok şık oldu daha sağlıklı oldu hocam.. Emeğine sağlık..
2. sorum için kapatmadan (combobox2'yi) güncellemenin yolunu arıyorum yinede teşekkür ederim çok zamanınızı aldım..
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
527
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Rica ederim.
Dosyanın son halini gönderirseniz aklıma bir şey gelirse ekleme yapmayı denerim.
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Son hali bu hocam Combobox2'nin form kapanmadan yenilenmesi kaldı.

Birde şimdi düşündümde mantık olarak örnek dosyada aynı tarihler arasında izin girilememesi lazım ama onu nasıl yapacağım bilemiyorum..

Örnek dosyada misal ilgili kişiyle ilgili aynı tarihler arasında girdiğimde yine kayıt atıyor hata verse zaten izinli gözüküyor gibi
 

Ekli dosyalar

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
hocam combobox yenilemede çözüldü #19 nolu posttaki dosyayı güncelledim.

Geriye tek kalan, daha önce aynı tarihlerde izni varsa kişinin kaydet işlemi yapmaması ve uyarı vermesi
 
Üst