• DİKKAT

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

Güne göre otomatik veri atama.

Katılım
5 Şubat 2016
Mesajlar
274
Excel Vers. ve Dili
Office 365 Türkçe
Merhabalar;
PLİNT üstadın yardımı ile baya mesafe kat edip kendimize yetecek kadar personelin giriş çıkşını takip etmek için Giriş-Çıkış programı yaptık fazla da yormak istemedim onu . Şöyle bir eksik kaldı , Personel bazen çıkış yapmayı unutuyor. Hali ile sıkıntı yaşayabiliyoruz.Böylelikle günlere göre tanımlı çıkış olunca sıkıntı kalmamış olacak.

Hatta şöyle bir şey de var , personel sayfasına özel yani her personele ayrı çıkış tanımlama imkanımız olabilir mi ? Şayet olur ise bu iş çok güzel olur benim için .
Örnek vermek gerekirse

X kişisi
Çıkış saatleri

Pazartesi: 19:30
Salı: 17:30
Çarşamba: İZİNLİ
Perşembe: 17:30
Cuma: 16:30
Cumartesi: 16:30
Pazar: 16:30

Y kişisi
Çıkış saatleri

Pazartesi: İZİNLİ
Salı: 17:30
Çarşamba: 19:30
Perşembe: 17:30
Cuma: 16:30
Cumartesi: 16:30
Pazar: 16:30

bu şekilde personel bazlı imkan yoksa tek bir tanımlamada yapabiliriz misal otomatik herkese pazartesi 19:30 atsın salı günü 18:30 gibi.

Yardımlarınız için şimdiden teşekkür ederim.

Örnek dosya linktedir.

http://s8.dosya.tc/server2/5tga58/IN-OUTT.xls.html
 
Son düzenleme:
. . .

Ayrı bir sayfa veya alanda aşağıdaki gibi tablo oluşturursanız.
Çıkış bilgileri buradan alınabilir.

14578597151.png


. . .
 
. . .

Toplu çıkış işlemi mi yapmak istiyorsunuz yoksa
öğretmen ismi karşısında çıkış botunu tıklandığında bu tablodan mı veri alacak.

. . .
 
. . .

Toplu çıkış işlemi mi yapmak istiyorsunuz yoksa
öğretmen ismi karşısında çıkış botunu tıklandığında bu tablodan mı veri alacak.

. . .

Normalde kendileri çıkışa basarak çıkış yapıyorlar. Bu sistemi çıkışa basmayı unutup gidenler için yapmaya çalışıyorum. Unuttular gittiler boş kalıyo karşısı. Buna engel olmak için atadığım saatleri atamasını istiyorum. Tabi şöyle birşey var bu işlemi saat 19:30'dan sonra yapması gerekiyor. O geldi şimdi aklıma, öğlen vakti çalışırsa bu sistem bir işe yaramamış olacak, herkese çıkış yazacak bu sefer.
 
Projenizin ayrintilarini bilmiyorum. Sizin yonlendirmenize gore yapacagiz.
Anladigim giris olup cikisi olmayanlar icin, cikisi yazdirmak istiyorsunuz.
Bunu buton tiklayarak yapabiliriz ancak siz belirli saatte otomatik mi yaptirmak istiyorsunuz.

.
 
Projenizin ayrintilarini bilmiyorum. Sizin yonlendirmenize gore yapacagiz.
Anladigim giris olup cikisi olmayanlar icin, cikisi yazdirmak istiyorsunuz.
Bunu buton tiklayarak yapabiliriz ancak siz belirli saatte otomatik mi yaptirmak istiyorsunuz.

.

Kesinlikle öyle , örnek vermek gerekir ise saat 19:30 olduğunda çıkışı boş olan herkesin çıkışını otomatik 19:30 olarak doldursun personel sayfalarında. Rapor isimli sheet zaten otomatik çekiyor personel sayfalarından.
 
. . .

Giriş -Çıkış saatleri arasındaki farktan mesai mi hesaplıyorsunuz.
Yani daha sonra bu veriler ile toplama çıkarma işlemi yapıyor musunuz.

Artık direk Now diye tarih saati almadığımız için değerleri metin olarak görüyor. Bu değer üzerinde de hesaplama yapılamıyor.

. . .
 
. . .

Buton ile çalıştırarak şu kodları test ediniz.

Kod:
Sub Kod()
    Application.ScreenUpdating = False
    
    Dim S1 As Worksheet: Set S1 = Sheets("ÇIKIŞLAR")
    Dim WF As WorksheetFunction: Set WF = Application.WorksheetFunction
    Dim Sayfa As String
    
    For i = 2 To S1.Cells(Rows.Count, "A").End(3).Row
        Sayfa = S1.Cells(i, "A")
        If Not SayfaVarMi(Sayfa) Then
        Else
            sonsat = Sheets(Sayfa).Cells(Rows.Count, "A").End(3).Row
            If Sheets(Sayfa).Cells(sonsat, "B") = "" Then
                g = WF.Weekday(Sheets(Sayfa).Cells(sonsat, "A"), 2) + 1
                tarih = CDate(Format(Sheets(Sayfa).Cells(sonsat, "A"), "dd.mm.yyyy"))
                saat = CDate(Format(S1.Cells(i, g), "hh:mm"))
                Sheets(Sayfa).Cells(sonsat, "B").NumberFormat = "dd/mm/yyyy dddd hh:mm;@"
                Sheets(Sayfa).Cells(sonsat, "B") = tarih + saat
            End If
        End If
    Next i
    
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

Function SayfaVarMi(Sayfa As String) As Boolean
    On Error Resume Next
    SayfaVarMi = CBool(Len(Worksheets(Sayfa).Name) > 0)
End Function

. . .
 
Emir Hüseyin bey denedim çok güzel , tam istediğim gibi olmuş emeğinize ve ellerinize sağlık . Peki bunu saate göre otomatiğe bağlama imkanımız olabilir mi ?
 
Son düzenleme:
. . .

Her mesajınızda alıntı yapmanıza gerek yok.

Saat kontrolü yaptırılır ancak şu şekilde bir durum oluşacaktır.
Arka planda sürekli çalışıp saati kontrol edecek. Bu da çalışma sistemini yoracaktır.

. . .
 
. . .

Her mesajınızda alıntı yapmanıza gerek yok.

Saat kontrolü yaptırılır ancak şu şekilde bir durum oluşacaktır.
Arka planda sürekli çalışıp saati kontrol edecek. Bu da çalışma sistemini yoracaktır.

. . .

Anladım. Yardımlarınız için tekrardan teşekkür ederim.
 
Geri
Üst