İş Makinesi Bakım Onarım Yakıt Çalışması

Katılım
14 Ağustos 2017
Mesajlar
5
Excel Vers. ve Dili
2013
İş Makinesi bakım onarım alanında bir çalışmam var,

Üst Edit: https://www.dosyaupload.com/4Vko
dosya eklendi
2 adet excel dosyası var.

1- Atölyede teknisyenlerin tamamlamış olduğu iş-servis formlarını bir excel dosyasında kayıtlı. Burada tek bir liste var yaklaşık 40 adet farklı makinenin bilgileri tarih, form numarası, makine numarasına göre kayıtlı.

Bu dosyada bu 40 farklı makine için ayrı ayrı sayfalar oluşuturup, genel listede yazılan verileri ilgili makine sayfasına taşımak otomatik istiyorum.

Şu an bunu makine numarasını filtreleyerek kopyala yapıştır, yada makine sayfasında ilgili hücrede "=workactivity!A20." şeklinde manuel olarak yapıyorum.


2- Bu dosyada makinenin ne kadar zaman çalışmadığı, ortlama ne kadar yakıt tüketimi olduğunu günlük ve başka bir sayfada aylık olarak görüyorum.

Makinenin ne kadar süre çalışmadığı bilgisi makine kartına yazılan yani 1 numaralı dosyadaki bilgilerden yararlanıyorum.

Örneğin makinenin atölye giriş tarihi 26.08.2017 10:00 atölyeden çıkış tarihi 31.08.2017 16:00

Burada tek bir satırda giriş ve çıkış tarih ve saatleri yazıyor, hepsini saate çeviriyorum. Makinenin çalışmadığı saati elde ediyorum 126 saat. ancak diğer sayfada makinenin günlük çalışmadığı saati görmem lazım. yani bu makine 01.08.2017 tarihinde 24 saat çalışmamış, 02.08.2017 tarihinde 24 saat çalışmamış. vs.

Burada nasıl bir formul yazmalıyım ki 126 saati kendinden önceki günlere çalışmadığı saatleri dağıtarak aktarsın.

Edit: =Aşağıdaki gibi bir formul yazdım ancak tam doğru değil.

101-D7: makine sayfası,
J125: makinenin giriş çıkış gün hesabının saat eğeri
L125: toplam atölyede kalma saat değeri.

yukarada bahsettiğim gibi veriler şu şekilde yazılmakta

Date in/Date out/Time in/Time out

J125=(Date out - Date in)*24
L125: ( Time out - Time in)+ J125

IF('101-D7'!$J$125>=24;MOD('101-D7'!$L$125;24);IF(AND('101-D7'!$J$121=0;'101-D7'!$L$121=0);24))

Eğer herhangi bir değer yazılmadıysa 0 değeri görmekteyiz. Ancak makine kartında aylık periyodda günler var. 26-31 arasında değer yazılmayan günlere 24 saat çalışmadığını yazarken.

20. ağustos tarihinine de 24 saat çalışmadığını yazmakta ki burası problem.

Edit 2:
2. durumu aşağıdaki yolla çözdüm

dwh_08: sayfası günlük araç saatlerini girdigim sayfa eğer bir önceki gün ile aynı değere sahipse 24 saat boyunca çalışmadığını anlıyorum.

IF('101-D7'!$J$125>=24;MOD('101-D7'!$L$125;24);IF(AND('101-D7'!$J$125=0;'101-D7'!$L$125=0;(dwh_08!AL7=dwh_08!AK7));24;0))
 
Son düzenleme:
Katılım
8 Ağustos 2017
Mesajlar
34
Excel Vers. ve Dili
Office 365 ProPlus İngilizce
Selam,
Yerinde olsam 3-5 tane iş makinesinin olduğu ufak capta ornek dosyaları oluşturup gönderirdim. dosya.tc gibi sitelere ucretsiz upload edip linki paylaşabilirsin. Cunku verilmiş bu bilgilerle düzgün birşey çıkartmak gerçekten çok zor. İkinci maddede 'bu makine 01.08.2017 tarihinde 24 saat çalışmamış' demekle 10 saat çalışmış mı demek istedin? Ayrıca saatleri nereye ve nasıl dağıtacaksın? Günlerin ayrı ayrı tutulduğu bir kayıt mı var yoksa oluşturman mı gerekiyor?
 
Katılım
14 Ağustos 2017
Mesajlar
5
Excel Vers. ve Dili
2013
Yurtdışındayım, şirket interneti web filtre kullandığı dosya paylaşımına kapalı ancak yardımcı olabilecekseniz dosyayı size mail atabilirim.

sizin söylediklerinizi denedim, ancak dosyayı mail dışında paylaşabilecek durumda değilim şu anda.

2. numaraları durumu çözdüm, ancak 1 numaralalı durum için hiçbir fikrim yok.
 
Katılım
14 Ağustos 2017
Mesajlar
5
Excel Vers. ve Dili
2013
Selam,
Yerinde olsam 3-5 tane iş makinesinin olduğu ufak capta ornek dosyaları oluşturup gönderirdim. dosya.tc gibi sitelere ucretsiz upload edip linki paylaşabilirsin. Cunku verilmiş bu bilgilerle düzgün birşey çıkartmak gerçekten çok zor. İkinci maddede 'bu makine 01.08.2017 tarihinde 24 saat çalışmamış' demekle 10 saat çalışmış mı demek istedin? Ayrıca saatleri nereye ve nasıl dağıtacaksın? Günlerin ayrı ayrı tutulduğu bir kayıt mı var yoksa oluşturman mı gerekiyor?
merhaba izin alıp dosyayı yükledim,

dd_08 sayfasında ayın 31. numaralı gününde renkli olarak boyadım, 2. durumu çözdüğümü.


1.numaralı durum için reports sayfasında kapı numarasına göre filtreleme yapıp, ilgili makine sayfasına otomatik taşımak istiyorum.
 
Katılım
8 Ağustos 2017
Mesajlar
34
Excel Vers. ve Dili
Office 365 ProPlus İngilizce
Üst edit de bir adet dosya var.
Bir sorum daha var. Report sayfasında olan tek tek sıralı kayıtlar makine sayfalarında uclu olarak gruplanmış. 320-1 ornek alırsak report sayfasındaki 66 ve 76 numaralı kayıtlar (S.N) makinenin sayfasında sırasıyla 2. ve 3. satırlara mı gelecek yoksa 2 ve 6 ya mı?
 
Son düzenleme:
Katılım
14 Ağustos 2017
Mesajlar
5
Excel Vers. ve Dili
2013
Üst edit de bir adet dosya var.
Bir sorum daha var. Report sayfasında olan tek tek sıralı kayıtlar makine sayfalarında uclu olarak gruplanmış. 320-1 ornek alırsak report sayfasındaki 66 ve 76 numaralı kayıtlar (S.N) makinenin sayfasında sırasıyla 2. ve 3. satırlara mı gelecek yoksa 2 ve 6 ya mı?

bazen bir makine bir gün içinde 3 kez gelebiliyor. 320-1 için var olan 66-1 agustos ve 76- 2 ağustos kaydı biz bu ikisinide 2.ağustos kaydı gibi düşünelim.
320-1 sayfasında 2. günün 3. satırından başlayarak kademeli olarak 2. ve 1. satıra sıralayacak. 8. satır, 7. satır ve 6. satıra yazılacak. eğer tek kayıt varsa ilgili günün en alt satırdan yazmaya başlaycak
 
Katılım
8 Ağustos 2017
Mesajlar
34
Excel Vers. ve Dili
Office 365 ProPlus İngilizce
Farklı varyasyonlar için deneme şansım olmadı ama verdiğin dosya için çalışıyor. 2 li ve 3 lu varyasyonlarda hata çıkması muhtemel, test edip sonucu paylasırsan kodda duzeltmeler yapılabilir.
Kod:
Sub KKY()
    Dim Col As New Collection
    Dim itm
    Dim i, j, k, m, n, LastRow As Long
    Dim CellVal As Variant
    Dim shtName As String
    Dim sht, wSheet As Worksheet
    Set sht = ThisWorkbook.Worksheets("reports")
    LastRow = sht.Cells(sht.Rows.Count, "F").End(xlUp).Row
    
    For i = 2 To LastRow
        CellVal = Sheets("reports").Range("F" & i).Value
        On Error Resume Next
        Col.Add CellVal, Chr(34) & CellVal & Chr(34)
        On Error GoTo 0
    Next i

    For Each itm In Col
        On Error Resume Next
        shtName = itm
        Set wSheet = Sheets(shtName)
        
        If wSheet Is Nothing Then
            Set wSheet = Nothing
            On Error GoTo 0
        Else
            For j = LastRow To 2 Step -1
            m = 0
                If shtName = sht.Cells(j, 6) And Month(sht.Cells(j, 9)) = Month(Sheets(shtName).Range("A2")) Then
                    For k = j + 1 To LastRow
                        If Day(sht.Cells(j, 9)) = Day(sht.Cells(k, 9)) And sht.Cells(j, 6) = sht.Cells(k, 6) Then
                            m = m + 1
                        End If
                    Next k
                
                    If m > 3 Then
                        MsgBox "Aynı günde aynı kapı numaralı 3 den fazla kayıt var"
                    End If
                    
                    For n = 3 To 16
                        Sheets(shtName).Cells(Day(sht.Cells(j, 9)) * 4 - m, n) = sht.Cells(j, n - 1)
                    Next n
                    Sheets(shtName).Select
                    Range("C" & Day(sht.Cells(j, 9)) * 4 - m & ":P" & Day(sht.Cells(j, 9)) * 4 - m).Select
                    MsgBox shtName & " kapı nolu " & sht.Cells(j, 9) & " tarihli " & m + 1 & ". kayıt eklendi"
                End If
            Next j
            Set wSheet = Nothing
        End If
    Next
    
End Sub
 
Katılım
14 Ağustos 2017
Mesajlar
5
Excel Vers. ve Dili
2013
Farklı varyasyonlar için deneme şansım olmadı ama verdiğin dosya için çalışıyor. 2 li ve 3 lu varyasyonlarda hata çıkması muhtemel, test edip sonucu paylasırsan kodda duzeltmeler yapılabilir.
Kod:
Sub KKY()
    Dim Col As New Collection
    Dim itm
    Dim i, j, k, m, n, LastRow As Long
    Dim CellVal As Variant
    Dim shtName As String
    Dim sht, wSheet As Worksheet
    Set sht = ThisWorkbook.Worksheets("reports")
    LastRow = sht.Cells(sht.Rows.Count, "F").End(xlUp).Row
    
    For i = 2 To LastRow
        CellVal = Sheets("reports").Range("F" & i).Value
        On Error Resume Next
        Col.Add CellVal, Chr(34) & CellVal & Chr(34)
        On Error GoTo 0
    Next i

    For Each itm In Col
        On Error Resume Next
        shtName = itm
        Set wSheet = Sheets(shtName)
        
        If wSheet Is Nothing Then
            Set wSheet = Nothing
            On Error GoTo 0
        Else
            For j = LastRow To 2 Step -1
            m = 0
                If shtName = sht.Cells(j, 6) And Month(sht.Cells(j, 9)) = Month(Sheets(shtName).Range("A2")) Then
                    For k = j + 1 To LastRow
                        If Day(sht.Cells(j, 9)) = Day(sht.Cells(k, 9)) And sht.Cells(j, 6) = sht.Cells(k, 6) Then
                            m = m + 1
                        End If
                    Next k
                
                    If m > 3 Then
                        MsgBox "Aynı günde aynı kapı numaralı 3 den fazla kayıt var"
                    End If
                    
                    For n = 3 To 16
                        Sheets(shtName).Cells(Day(sht.Cells(j, 9)) * 4 - m, n) = sht.Cells(j, n - 1)
                    Next n
                    Sheets(shtName).Select
                    Range("C" & Day(sht.Cells(j, 9)) * 4 - m & ":P" & Day(sht.Cells(j, 9)) * 4 - m).Select
                    MsgBox shtName & " kapı nolu " & sht.Cells(j, 9) & " tarihli " & m + 1 & ". kayıt eklendi"
                End If
            Next j
            Set wSheet = Nothing
        End If
    Next
    
End Sub
çok teşekkürler emeğinize sağlık
 
Üst