• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Personel izin aylık icmalini yapmak

  • Konbuyu başlatan Konbuyu başlatan muzo696
  • Başlangıç tarihi Başlangıç tarihi
Katılım
26 Nisan 2009
Mesajlar
156
Excel Vers. ve Dili
excel 2003 türkçe
arkadaşlar örnek attığım excelde personelin izin rapor ve diğer durumlarını ilgili ayın icmalinde örnek yaptığımdaki gibi günlerdeki çentiklerin silinmesini ve hücrenin boyanmasını istiyorum. bu işlemi otomatik yapmasını istiyorum yardım ederseniz çok sevinirim...
Benım ısıme yarayan su anlatayım sıze.. nobet kısmındakı ısımler ve ızın ve rapor tarıhlerını gırdıgımde.. ornek personel 11.01.2016 da ızıne cıkmıs 17.01.2016 da baslamıs. bu personelin icmal bölümünde 6 gunluk centıgını kaldırmak ıstıyorum. yanı ayın 11 ile 16 sı arasının çentıgın sılınıp boyanmasını ıstıyorum. ayrıca nobet kısmındakı ısımlerınde otomatık ıcmale gcemsını ıstıyorum yardımcı olursanız cok sevınırım

http://s8.dosya.tc/server/izhbwl/nobet_icmali.rar.html
 
Son düzenleme:
Merhaba.
NÖBET sayfasındaki tarihlerin ay ve yılı icmal sayfanız ile aynı döneme denk gelmek ve
NÖBET sayfasında son dolu satırdaki gibi bir hücreye 1'den fazla tarih yazmamak
(aynı kişiye 1'den fazla başlangıç ve bitiş tarihi yazmak yerine herbir izin/rapor için bir satır olacak şekilde veri girişi yapmanız gerekir)
koşuluyla aşağıdaki kod işinizi görecektir.

-- alt taraftan NÖBET sayfasının adına fareyle sağ tıklayın,
-- açılan menüden KOD GÖRÜNTÜLEyi seçin,
-- açılan ekranın sağ tarafındaki boş alana aşağıdaki kod'u yapıştırın,
-- sayfaya bir düğme/şekil ekleyin,
-- bu düğmeye/şekle fareyle sağ tıklayın ve MAKRO ATA'yı seçin,
-- açılan küçük ekranda ÇENTİK_SİL_BRN'yi seçip işlemi onaylayın,
-- bu düğmeye/şekile fareyle tıklayın.
Kod:
[FONT="Trebuchet MS"][COLOR="Blue"][B]Sub ÇENTİK_SİL_BRN()[/B][/COLOR]
Dim n, i As Worksheet: Set n = Sheets("NÖBET"): Set i = Sheets("İCMAL")
For brn = 2 To n.[F65536].End(3).Row
If n.[E65536].End(3).Row <> n.[F65536].End(3).Row Or n.[B65536].End(3).Row <> n.[E65536].End(3).Row Then GoTo 10
If WorksheetFunction.CountIf(i.Range("B:B"), n.Cells(brn, 2)) = 0 Or n.Cells(brn, 2) = "" Then GoTo 10
    brnsat = WorksheetFunction.Match(n.Cells(brn, 2), i.Range("B:B"), 0)
    ilksut = Day(n.Cells(brn, 5)) + 4
    sonsut = Day(n.Cells(brn, 6)) + 3
    i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)) = ""
10: Next
MsgBox "ÇENTİKLER KALDIRILDI"
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
Ömer bey bir personelin ay içerisinde birden fazla mazereti oluyor senelık ızın rapor gıbı bunların aynı sutun uzeınden sılınmesı lazım mumkunmu acaba. yaptıgım ornekte 3 sahısda olduğu gibi..
 
Merhaba.
Örnek belge NÖBET sayfasında ALİ KEMAL isminin bulunduğu satırda bir hücreye iki tarih girilmiş durumda.
Önceki cevabımdaki uyarı bunun içindi zaten.
Aynı hücreye iki tarih yerine; bir satırda izin başlangıç ve bitiş tarihini, aynı ismi yazarak diğer bir satırda da rapor başlangıç ve bitiş tarihini yazarsanız verdiğim kod işlem yapacaktır.
Önce yukarıdaki şekilde verilerinizi düzeltin, sonra İCMAL sayfasında boş olan hücrelere de 1 yazın ve kod'u çalıştırın.
 
Ömer bey değiğiniz komutları yapamadım rica etsem siz yapıp buraya eklermisiniz... tesekkurler yardımlarınız ıcın
 
ömer bey yardımlarınızdan dolayı tesekkurler. tarıfınızı uygulayamadım excel de.. Benım ısıme yarayan su anlatayım sıze.. nobet kısmındakı ısımler ve ızın ve rapor tarıhlerını gırdıgımde.. ornek personel 11.01.2016 da ızıne cıkmıs 17.01.2016 da baslamıs. bu personelin icmal bölümünde 6 gunluk centıgını kaldırmak ıstıyorum. yanı ayın 11 ile 16 sı arasının çentıgın sılınıp boyanmasını ıstıyorum. ayrıca nobet kısmındakı ısımlerınde otomatık ıcmale gcemsını ıstıyorum yardımcı olursanız cok sevınırım..​
 
Son düzenleme:
Ömer Bey cevabı vermiş sadece size deneni yapmak.
"aynı kişiye 1'den fazla başlangıç ve bitiş tarihi yazmak yerine her bir izin/rapor için bir satır olacak şekilde veri girişi yapmanız gerekir"
Yani Ali Kemal için senelik izin ve rapor verilerini alt alta yazın size önerilen kodu kullanın.
 
evet hocam aynen denıyorum fakat calısmıyor malesef cok lazım acıl.. sıze zahmet sız denermısınız calısıyormu yapıp yuklersenız cok memnun olurum.. nöbet lıstesındekı ısımlerde icamale gelmıyor gunlerdekı centıklerde kalkmıyor malesef..
 
cookkk tesekkurler ali bey aynı satıra gırılınce yapamaz mıyız bunu... bırde nöbete yenı yazdıgım ısımler icmal kısmına gecmıyor onuda yapabılırmısınız sıze zahmet olacak..
 
Merhaba Sayın muzo696.

Sayın alicimri'ye de teşekkürler RENK ilavesini yapmış.

Konu sahibi anladığım kadarıyla Ms.Excel ile uğraşmaya yeni başlamış bir üye gibi geldi bana.
İsim aktarmanın ardından eminim ki "İCMAL sayfasındaki AY adını değiştirdiğimde ne olacak/şu aydaki tarihleri dikkate almaması lazım, hücrelere izin için İ yazılsın, rapor için R yazılsın, o ismin izin hakkı dolduğunda engel olsun/uyarsın vs.vs...?" şeklinde ilave sorular gelecek diye tahmin ediyorum.

Sayın muzo696'ya önerim;
-- öncelikle sayfaları detaylı bir şekilde düşünerek tasarlaması,
-- biraz mesafe aldıktan sonra takılınan konuda destek istemesi,
-- bundan da önce forumda örneğin PUANTAJ diye arama yaparak bulacağı çok sayıda örneklerden yararlanarak kendi belgesini oluşturması
-- veya beğendiği bir örnek varsa onu kendisine uyarlamaya çalışması
takılınan nokta olursa tekrar destek istemesi yönünde olacak.
 
Ömer bey desteklerinizden dolayı tesekkurler forum harika...
 
Ömer Beyin kodlarına ekleme ile istediğiniz şekli aldı. Kontrol ediniz.
Kod:
Sub ÇENTİK_SİL_BRN()
Dim n, i As Worksheet
Set n = Sheets("NÖBET")
Set i = Sheets("İCMAL")
For brn = 2 To n.[F65536].End(3).Row
If n.[E65536].End(3).Row <> n.[F65536].End(3).Row Or n.[B65536].End(3).Row <> n.[E65536].End(3).Row Then GoTo 10
If WorksheetFunction.CountIf(i.Range("B:B"), n.Cells(brn, 2)) = 0 Or n.Cells(brn, 2) = "" Then GoTo 10
    brnsat = WorksheetFunction.Match(n.Cells(brn, 2), i.Range("B:B"), 0)
   m = Len(n.Cells(brn, 5))
   If m = 10 Then
    ilksut = Day(n.Cells(brn, 5)) + 4
    sonsut = Day(n.Cells(brn, 6)) + 3
    GoTo 5
    Else
    a = Mid(n.Cells(brn, "E"), 1, 10)
    b = Mid(n.Cells(brn, "F"), 1, 10)
    c = Mid(n.Cells(brn, "E"), 12, 10)
    d = Mid(n.Cells(brn, "F"), 12, 10)
    ilksut = Day(a) + 4
    sonsut = Day(b) + 3
    ilksut1 = Day(c) + 4
    sonsut1 = Day(d) + 3
 i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)) = ""
 i.Range(i.Cells(brnsat, ilksut1), i.Cells(brnsat, sonsut1)) = ""
 i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)).Interior.ColorIndex = 27
 i.Range(i.Cells(brnsat, ilksut1), i.Cells(brnsat, sonsut1)).Interior.ColorIndex = 27
   GoTo 10
    End If
5:    i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)) = ""
      i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)).Interior.ColorIndex = 27
10: Next
MsgBox "ÇENTİKLER KALDIRILDI"
End Sub
 
Son düzenleme:
vardar07 hocam harıka olmus elıne saglık harıkasınız ancak sılınen sutunları boyama gelmıyor ve nobet kısmına yazdıgım sıcıl ve ad soyad icmal listesine otomatik atmıyor.. bırde benım sablonda adsoyad kısmının onune sıcıl dıye bır sutun acmam lazım lınk atsam ona uygulayıp yukleyebılırmısınız...

http://s6.dosya.tc/server5/s68ulr/nobet_icmali.xlsx.html son sablon bu abım..
 
Yapmak istediklerinizi kuyruk tarak sorarsanız ha bire kod düzenlemesi yapmak gerekir. Lütfen dosyanızı tam tasarlayıp öyle konu açınız.
 
Merhaba.

11 numaralı cevaptaki önerilerimi tekrar okuyunuz.

Son bir destek.
Dosyanın son haline göre Sayın vardar'ın ilavelerde bulunduğu
(Sayın vardar halletmiş olmasına rağmen hala aynı düşüncedeyim; bir hücreye bir veri yazılmalıdır)
kod'da kırmızı renkli satırdan sonra, aşağıdaki mavi renkli satırları ekleyerek sonuç alabilirsiniz.
Kod:
[COLOR="Red"]For brn = 2 To n.[F65536].End(3).Row[/COLOR]
[COLOR="Blue"]    If WorksheetFunction.CountIf(i.Range("C:C"), n.Cells(brn, 3)) = 0 Then
        i.Cells(i.[C65536].End(3).Row + 1, 3) = n.Cells(brn, 3)
        i.Cells(i.[D65536].End(3).Row + 1, 4) = n.Cells(brn, 4)
    End If[/COLOR]
 
Son düzenleme:
selam,
teşekkürler Ömer Bey,
gece zaten tüm mesajları okuduktan sonra böyle bir şey yapmaya karar verdim.
veri sayfasının nasıl olabileceği konusunda fikir vermekti amacım. Israrcı olunmaması yönünde de tabi ki...
kolay gelsin...
 
Arkadaşlar öncelikle bu forumdaki arkadaşların yardımlarından dolayı çok tesekkur ederım.. Yuklemıs olduğum dosyada personellerin izinliler raporlular sayfasında personellerin verilerini, başlama ve bitiş tarihlerini girip bu listedeki isimlerin icmal sayfasına otomatik gecmesini ve günler kısmında çentiklerin silinerek boyanmasını istiyorum tam olarak.Bu konuda yardımcı olmak ısteyen hocalarım oldu kod paylastılar ancak şablon biraz değişti ve son şablonum bu. Ekleyeceğim kodları bu şablona göre yapmak istediklerimi ayarlayabilecek arkadaşım olursa çok sevinirim.. şimdiden çok teşekkür ederim.
.
http://s8.dosya.tc/server/kd9rr7/PERSONEL_ICMAL_PUANTAJ.xls.html

ESKİ ŞABLONUN KODLARI

Sub ÇENTİK_SİL_BRN()
Dim n, i As Worksheet
Set n = Sheets("NÖBET")
Set i = Sheets("İCMAL")
For brn = 2 To n.[F65536].End(3).Row
If n.[E65536].End(3).Row <> n.[F65536].End(3).Row Or n.[B65536].End(3).Row <> n.[E65536].End(3).Row Then GoTo 10
If WorksheetFunction.CountIf(i.Range("B:B"), n.Cells(brn, 2)) = 0 Or n.Cells(brn, 2) = "" Then GoTo 10
brnsat = WorksheetFunction.Match(n.Cells(brn, 2), i.Range("B:B"), 0)
m = Len(n.Cells(brn, 5))
If m = 10 Then
ilksut = Day(n.Cells(brn, 5)) + 4
sonsut = Day(n.Cells(brn, 6)) + 3
GoTo 5
Else
a = Mid(n.Cells(brn, "E"), 1, 10)
b = Mid(n.Cells(brn, "F"), 1, 10)
c = Mid(n.Cells(brn, "E"), 12, 10)
d = Mid(n.Cells(brn, "F"), 12, 10)
ilksut = Day(a) + 4
sonsut = Day(b) + 3
ilksut1 = Day(c) + 4
sonsut1 = Day(d) + 3
i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)) = ""
i.Range(i.Cells(brnsat, ilksut1), i.Cells(brnsat, sonsut1)) = ""
i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)).Interior.ColorIndex = 27
i.Range(i.Cells(brnsat, ilksut1), i.Cells(brnsat, sonsut1)).Interior.ColorIndex = 27
GoTo 10
End If
5: i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)) = ""
i.Range(i.Cells(brnsat, ilksut), i.Cells(brnsat, sonsut)).Interior.ColorIndex = 27
10: Next
MsgBox "ÇENTİKLER KALDIRILDI"
End Sub,

Bu kodlar eski şablonda benim isteğimi karşılıyordu ancak sadece çentikleri boyamıyordu.
Bu kodları yeni şablona düzenleyecek arkadaşıma minnettar olurum..
 
Son düzenleme:
Geri
Üst