PDA

Tüm Versiyonu Göster : İzin Kağıdı Çalışması


erol.azakli
04-12-2005, 09:15
İzin adlı dosyamdaki bilgileri makro ile defter adlı sayfaya alt alta atıp orada depolamaktayım. Fakat birde bunların izin tarihlerine göre dağlımını yapmak gerekiyor. (Yıllık İzin, Mazeret, Hastalık ve Ücretsiz İzin) Defterin B3 sütündaki isimden başlamak üzere, ordaki bilgilerin iznin cinsi neyse (J2), izin dağılımında karşılık gelen isimlerden bulunarak iznin başlangıç tarihinden itibaren iznin cinsine göre (Yıllık İzin=Y;Mazeret İzni=M; Hastalık İzni=H, Ücretsiz İzin=Ü) parantez içindeki bilgilere göre denk gelen sütünlüra bilgileri izin gün sayısını da (Defter G3) dikkate alarak doldurması. Unutmadan aynı kişiye ikinci bir izin yazdığım zaman eğer o sutünlar izin dağlımı sayfasında işaretli ise beni uyarması mümkün mü?

erol.azakli
05-12-2005, 22:51
Arkadaşlar cevap verecek, yardım edecek kimse yokmu, lütfen yardım edermisiniz?

Levent Menteşoğlu
06-12-2005, 21:51
Sorunuzda açıklanması gereken yerler var, örneğin izin tarihlerine göre demişsiniz, bu tarihler K sütunundakilermidir, Ayrıca izin tipine göre nasıl listeleneceği çok açık değil, ayrıca bu listeleme nereye yapılacaktır. Gerekirse bir örnek uygulama yaparak onun üzerinden sorunuzu yöneltin.

erol.azakli
07-12-2005, 08:33
İzin kağıdında bir kaydet butonu oluşturup izni yazdıktan sonra kaydet butonuna bastığımızda izni yazdığımız personele ait olan bilgilerin izin dağılımındaki personel listesinden bulunarak yıllık izin ise y olarak iznin başlangıç tarihinden itibaren işaretleyip personelin izin gün sayısını dikkate alarak aşağıda örnekteki gibi dolduracak. izin türünü izin formunun üst kısmındaki gri renkli boşluklardaki hangi kare dolu ise onun ilk baş harfini izin dağılımındaki listeye işaretleyecek.( yıllık izinise =Y mazeret ise =M Hastalık ise =H Ücretsiz ise = Ü )

Ã?RNEK
personel adı izin başlama tarihi izin türü
abdullah şen 01.01.2005 yıllık , mazeret. hastalık,ücretsiz

izin gün sayısı
5 gün


01.Oca Y
02.Oca Y
03.Oca Y
04.Oca Y
05.Oca Y

Levent Menteşoğlu
08-12-2005, 21:19
Aşağıdaki kodu deneyin.

[vb:1:2fb6d8376c]Sub listeyeaktar()
On Error GoTo 10
Set s1 = Sheets("izin")
Set s2 = Sheets("izin dağılımı")
If s1.[a12] <> 0 Then yaz = "Y"
If s1.[d12] <> 0 Then yaz = "M"
If s1.[f12] <> 0 Then yaz = "H"
If s1.[h12] <> 0 Then yaz = "Ü"
ad = s1.[a17].Value
bastar = s1.[f17]
sure = s1.[o17] - bastar
bulad = WorksheetFunction.Match(ad, s2.[d1:iv1], 0) + 3
bultarih = WorksheetFunction.Match(s1.[f17], s2.[b9:b65536], 0) + 7
For a = 1 To sure
s2.Cells(bultarih + a, bulad) = yaz
Next
MsgBox "KAYIT YAPILDI"
Exit Sub
10 MsgBox "VERİ BULUNAMADI"
End Sub[/vb:1:2fb6d8376c]

erol.azakli
09-12-2005, 10:04
Merhabalar
Tam istediğim gibi olmuş. Zaman ayırdığınız için teşekkür ederim.

erol.azakli
10-12-2005, 21:24
Merhabalar
Affınıza sığınarak birşey daha sormak istiyorum. Kodlar çalışıyor. Fakat bizim kurumumuzdaki personel sayısı 400, excelde ise sadece 256 adet sütun bulunmakta. Bu yüzden personellerin 145 tanesinin bilgilerini izin dağılımı sayfasına atamıyorum. Bu konuda nasıl bir çözüm yolu önerirsiniz. Þimdiden teşekkürler

Levent Menteşoğlu
10-12-2005, 21:41
Yapılacak tek şey devamını yeni bir sayfada devam ettirmektir.

erol.azakli
10-12-2005, 21:52
İzin dağılımı-1 diye yeni bir sayfa açmış olsam aynı makro ile personel bilgilerini atmak mümkün olurmu. İzin dağılımı sayfasındaki yoksa izin dağılımı-1 sayfasına atması gibi. Makroda değişiklik yapabilirmisiniz.

Levent Menteşoğlu
10-12-2005, 22:05
Diğer sayfaya "izin dağılımı-1 ismini vererek aşağıdakikodu kullanabilirsiniz.

[vb:1:646f7d8ead]Sub listeyeaktar()
On Error GoTo 10
Set s1 = Sheets("izin")
Set s2 = Sheets("izin dağılımı")
If s1.[a12] <> 0 Then yaz = "Y"
If s1.[d12] <> 0 Then yaz = "M"
If s1.[f12] <> 0 Then yaz = "H"
If s1.[h12] <> 0 Then yaz = "Ü"
ad = s1.[a17].Value
bastar = s1.[f17]
sure = s1.[o17] - bastar
20 bulad = WorksheetFunction.Match(ad, s2.[d1:iv1], 0) + 3
bultarih = WorksheetFunction.Match(s1.[f17], s2.[b9:b65536], 0) + 7
For a = 1 To sure
s2.Cells(bultarih + a, bulad) = yaz
Next
MsgBox "KAYIT YAPILDI"
Exit Sub
10 Set s2 = Sheets("izin dağılımı-1")
GoTo 20
End Sub[/vb:1:646f7d8ead]

erol.azakli
08-01-2006, 21:08
Leventm Merhabalar
Bir üsteki cevabınızda vermiş olduğunu kod ile verileri listeye aktarıyorum. Fakta sizden mümkünse bir ilave yapmanızı rica edeceğim. Tabiki mümkünse. Aynı dosyanın içine izin takip cetveli diye bir sayfa daha açtım. Burada istediğim aynı makroya ilave yapılıp, "izin" sayfasının "a17" sütununa yazmış olduğum personel adının izin kullanma cetvelinden bulunup izin sayfasının "o19" sütündaki gün sayısının ve "f17" sütünundaki izin tarihinin iznin cinsine göre ilgili sütuna sırayla kaydedilmesi. Yıllık izin ise İzin Kullanma Cetveli'!$L$5:$AK$504 aralığına; hastalık izni ise 'İzin Kullanma Cetveli'!$AL$6:$BI$504, mazaret izni ise 'İzin Kullanma Cetveli'!$BL$5:$BW$504,
ücretsiz izin ise 'İzin Kullanma Cetveli'!$BX$5:$CC$504 sütunlarına işlemesi. Þimdiden teşekkürler.

Levent Menteşoğlu
08-01-2006, 22:07
Kodu aşağıdaki ile değiştirin.

[vb:1:173536c1ce]Sub listeyeaktar()
On Error GoTo 10
Set s1 = Sheets("izin")
Set s2 = Sheets("izin dağılımı")
Set s3 = Sheets("İzin Takip Cetveli")
If s1.[a12] <> 0 Then
yaz = "Y"
sut = 12
End If
If s1.[d12] <> 0 Then
yaz = "M"
sut = 38
End If
If s1.[f12] <> 0 Then
yaz = "H"
sut = 64
End If
If s1.[h12] <> 0 Then
yaz = "Ü"
sut = 76
End If
ad = s1.[a17].Value
bastar = s1.[f17]
gun = s1.[o19]
say = WorksheetFunction.Match(s1.[a17], s3.[c5:c65536], 0) + 4
If s3.Cells(say, sut) <> 0 Then sut = s3.Cells(say, sut).End(xlToRight).Column + 1
s3.Cells(say, sut) = gun
s3.Cells(say, sut + 1) = bastar
sure = s1.[o17] - bastar
20 bulad = WorksheetFunction.Match(ad, s2.[d1:iv1], 0) + 3
bultarih = WorksheetFunction.Match(s1.[f17], s2.[b9:b65536], 0) + 7
For a = 1 To sure
s2.Cells(bultarih + a, bulad) = yaz
Next
MsgBox "KAYIT YAPILDI"
Exit Sub
10 Set s2 = Sheets("izin dağılımı-1")
GoTo 20
End Sub[/vb:1:173536c1ce]

erol.azakli
08-01-2006, 22:28
Leventm Merhabalar
Kodlar da yalnız bir eksiklik var aynı kişiye ikinci bir izin yazdığım zaman ilk yazdığım izni siliyor onun üstüne yazıyor. Benim istediğim aynı kişiye ikinci bir izin yazıldığında 2. izin sütununa yazması ve başka bir izini yazdığımda 3 izin, 4 izin vb. diye devam etmesi. Tabiki bunlar hastalık, mazaret ve ücretsiz içinde geçerli

Levent Menteşoğlu
08-01-2006, 22:36
Yukarıdaki kodu yeniledim. Tekrar deneyin.

erol.azakli
15-01-2006, 19:51
Leventm Merhabalar
Ã?ncelikle kodlar için teşekkür ediyorum. Mümkünse sizden bir yardım daha rica edeceğim.İzin dağılımı ve izini dağılımı-1 sayfasındaki 2005 ve 2006 yıllarına personel izinleri izin kağıdı sayfamda hangi personel seçili ise izin kağıdındaki izin durumu sutünunundan hangi yıldan izni var ise ona göre eğer 2005 yılı izni ise 2005 yılından 30 gün senelik izni vardır diye yazması. Eğer 2006 var ise aynı şeklide yukardaki 2005 yerine 2006 yazılıp diğerlerinin aynı şekilde yazılması. Birde tabiki her iki yıldan izni var ise 2005 yılından 30 gün ve 2006 yılından 30 gün olmak üzere toplam 60 gün izni vardır diye yazması münkünmü. Tabiki izin günleri değiştikçe izin gün sayılarınında otomatik olarak değişmesi gerekli. Þimdiden teşekkürler.

omurkorkmaz
09-10-2009, 15:20
ya arkadaşlar ustalar,
dosyayı paylaşmış olsanız belki bizimde işimize yarar :))