• DİKKAT

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

Bakımı gelen cihazın 30 gün önceden uyarılması

Katılım
21 Eylül 2005
Mesajlar
11
Selam arkadaşlar,

Ekteki dosyada görebileceğiniz gibi cihazlara ait bakım tarihlerinin olduğu bir dosyamız var.

Bu liste epeyce uzun.

Bu dosyayı açtığımız zaman bakıma 30 gün kalan cihazların listesinin ayrı bir uyarı adlı sayfaya yazılmasını istiyoruz. Bu sayede her gün uyarı sayfasına gidip plan program yapabilirsiniz.

Renklendirme vs yapmadan bunu kodlarla nasıl yapırız?

Yalnız dikkat ederseniz sonraki bakım tarihi sütununda boş hücrelerde var (iller arasında) .

Uyarı sayfasına ilini de yazarak aktaracak.

Teşekkür ederim.
 

Ekli dosyalar

Dosyanız ektedir.:cool:

Kod:
Sub bakim_59()
Dim il As String, sat As Long, i As Long
Dim myarr, sat2 As Long
Application.ScreenUpdating = False
Sheets("Bakım").Select
sat = Cells(Rows.Count, "B").End(xlUp).Row
sat2 = 1
ReDim myarr(1 To 5, 1 To sat)
For i = 2 To sat
    If Cells(i, "A").Value <> "" Then
        il = Cells(i, "A").Value
        'sat2 = sat2 + 1
        ElseIf Date - Cells(i, "D").Value > 30 Then
        myarr(1, sat2) = il
        myarr(2, sat2) = Cells(i, "B").Value
        myarr(3, sat2) = Cells(i, "C").Value
        myarr(4, sat2) = Cells(i, "D").Value
        myarr(5, sat2) = "Bakım Zamanı " & DateDiff("d", Date, Cells(i, "D").Value) + 30 & " Gün Geçmiş!Hala Bakım Yapılmamış!"
        sat2 = sat2 + 1
        ElseIf Date - Cells(i, "D").Value <= 30 And Date - Cells(i, "D").Value >= 0 Then
        myarr(1, sat2) = il
        myarr(2, sat2) = Cells(i, "B").Value
        myarr(3, sat2) = Cells(i, "C").Value
        myarr(4, sat2) = Cells(i, "D").Value
        myarr(5, sat2) = "Çünkü " & Date - Cells(i, "D").Value & " Gün Sonra Bakım Var."
        sat2 = sat2 + 1
    End If
Next
Sheets("Uyarı").Select
Range("A2:F" & Cells(Rows.Count, "B").End(xlUp).Row).Clear
If sat2 > 1 Then
    ReDim Preserve myarr(1 To 5, 1 To sat2 - 1)
    Range("B2").Resize(UBound(myarr, 2), 5) = _
    Application.Transpose(myarr)
End If
Erase myarr
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation
End Sub
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Option Base 1
Sub bakim_59()
Dim il As String, sat As Long, i As Long
Dim myarr, sat2 As Long
Application.ScreenUpdating = False
Sheets("Bakım").Select
sat = Cells(Rows.Count, "B").End(xlUp).Row
sat2 = 1
ReDim myarr(1 To 4, 1 To sat)
For i = 2 To sat
    If Cells(i, "A").Value <> "" Then
        il = Cells(i, "A").Value
        'sat2 = sat2 + 1
        ElseIf Cells(i, "D").Value - Cells(i, "C").Value = 30 Then
        myarr(1, sat2) = il
        myarr(2, sat2) = Cells(i, "B").Value
        myarr(3, sat2) = Cells(i, "C").Value
        myarr(4, sat2) = Cells(i, "D").Value
        sat2 = sat2 + 1
    End If
Next
Sheets("Uyarı").Select
Range("A2:D" & Cells(Rows.Count, "B").End(xlUp).Row).Clear
ReDim Preserve myarr(1 To 4, 1 To sat2 - 1)
Range("B2:C" & 10).Resize(UBound(myarr, 2), 4) = Application.Transpose(myarr)
Application.ScreenUpdating = True
End Sub

Merhaba yanıt için teşekkür ederim.
Yalnız dosyada sadece son bakım tarihini baz alabiliriz. Yani bugün() ' den yararlanmamız lazım. Önceki bakım tarihinden çıkmaması lazım.
Örneğin ilk sıraya bakarsanız 245 gün değil, 30 küsür gün kalmış bakım yapılmasına.
Ayrıca her açılışta autoopen ile çalışması lazım.
 
Merhaba yanıt için teşekkür ederim.
Yalnız dosyada sadece son bakım tarihini baz alabiliriz. Yani bugün() ' den yararlanmamız lazım. Önceki bakım tarihinden çıkmaması lazım.
Örneğin ilk sıraya bakarsanız 245 gün değil, 30 küsür gün kalmış bakım yapılmasına.
Ayrıca her açılışta autoopen ile çalışması lazım.

Dosyayı güncelledim 2 numaralı mesajdan indirebilirisniz.:cool:
 
Dosyayı güncelledim 2 numaralı mesajdan indirebilirisniz.:cool:

Tekrar teşekkürler epey olgunlaştı.

Ancak şöyle bir durum yap.
Uyarı sayfasında sonraki bakım tarihi günümüzden eski olanları ve sonraki bakım tarihine 30 gün ve az kalanları dizebilir miyiz?
Diyelim ki sonraki bakım tarihi 05.01.2012 ise uyarı sayfasına şu an yazılsın. (Bakım zamanı geçmiş, hala bakım görmemiş)
Ayrıca sonraki bakım tarihi 29.01.2012 ise uyarı sayfasına şu an yazılsın. (Çünkü 12 gün sonra bakım yapılması gerekiyor)

Ayrıca dosya açılırken uyarı sayfasını temizleyebilirmiyiz? Değişiklerde artık hücreler kalıyor.
 
Tekrar teşekkürler epey olgunlaştı.

Ancak şöyle bir durum yap.
Uyarı sayfasında sonraki bakım tarihi günümüzden eski olanları ve sonraki bakım tarihine 30 gün ve az kalanları dizebilir miyiz?
Diyelim ki sonraki bakım tarihi 05.01.2012 ise uyarı sayfasına şu an yazılsın. (Bakım zamanı geçmiş, hala bakım görmemiş)
Ayrıca sonraki bakım tarihi 29.01.2012 ise uyarı sayfasına şu an yazılsın. (Çünkü 12 gün sonra bakım yapılması gerekiyor)

Ayrıca dosya açılırken uyarı sayfasını temizleyebilirmiyiz? Değişiklerde artık hücreler kalıyor.
2 nolu mesajdan dosyanızı indiriniz.:cool:
 
Kodun başına
Sheets("Uyarı").Range("A1:B50").ClearContents
yazarak sayfayı temizlettirdim.
 
6 numaralı mesaja bakınız.:cool:

Siz yazarken bende yazmışım tam. :)

Kontrol ediyorum. Ancak sorun var.

Uyarı sayfasına bakarsanız daha 30'dan fazla gün sonra gelecek olanlar listeye girmiş.

Ayrıca bakımı geçmiş olanlara da bakım xx gün sonra bakımı var diyor.

Eksili değerler çıktığı için sanırım bir iki düzeltme daha gerekecek.
 
Son düzenleme:
Siz yazarken bende yazmışım tam. :)

Kontrol ediyorum. Ancak sorun var.

Uyarı sayfasına bakarsanız daha 30'dan fazla gün sonra gelecek olanlar listeye girmiş.

Ayrıca bakımı geçmiş olanlara da bakım xx gün sonra bakımı var diyor.

Eksili değerler çıktığı için sanırım bir iki düzeltme daha gerekecek.

Dosya2 nolu mesajda indirebilirsiniz.:cool:
 
şu an itibarı ile yenilemem gereken bir yer vardı onu düzelttim.Tekrar indiriniz 2 nolu mesajdan
 
Son yaptığınızda çıkan sonuçlar yine duruma uymadı.

Ben de boş durmadım.

Sizin bir önceki verdiğinizde çalışıyordum ve sonuca ulaştım.

Dosya ekte.

Yardımlarınız için çok teşekkür ederim. İş yerine gidince dosyaya atacağım. Eksik süsleme için birkaç sorum olabilir :) Kolay gelsin. Vaktiniz ve emeğiniz için tekrar sağolun.
 

Ekli dosyalar

Son yaptığınızda çıkan sonuçlar yine duruma uymadı.

Ben de boş durmadım.

Sizin bir önceki verdiğinizde çalışıyordum ve sonuca ulaştım.

Dosya ekte.

Yardımlarınız için çok teşekkür ederim. İş yerine gidince dosyaya atacağım. Eksik süsleme için birkaç sorum olabilir :) Kolay gelsin. Vaktiniz ve emeğiniz için tekrar sağolun.
2 nolu mesajda bir düzenleme yaptım.
Tekrar indirip deneyiniz.:cool:
 
2 nolu mesajda bir düzenleme yaptım.
Tekrar indirip deneyiniz.:cool:

Sizin yaptığınız sonuçta hala hata var.

Uyarı sayfasına bakın.


26.12.2011 Çünkü 23 Gün Sonra Bakım Var. ---->Bakım geçtiği halde 23 gün sonra diyor
19.12.2011 Çünkü 30 Gün Sonra Bakım Var. ----> aynı şekilde
05.01.2012 Çünkü 13 Gün Sonra Bakım Var. -----> aynı şekilde
09.12.2011 Bakım Zamanı -10 Gün Geçmiş!Hala Bakım Yapılmamış! ----> 38 gün civarı gün geçtiği halde hata var. Benim dosyaya bakarsanız düzgün çalışıyor.
 
Sizin yaptığınız sonuçta hala hata var.

Uyarı sayfasına bakın.


26.12.2011 Çünkü 23 Gün Sonra Bakım Var. ---->Bakım geçtiği halde 23 gün sonra diyor
19.12.2011 Çünkü 30 Gün Sonra Bakım Var. ----> aynı şekilde
05.01.2012 Çünkü 13 Gün Sonra Bakım Var. -----> aynı şekilde
09.12.2011 Bakım Zamanı -10 Gün Geçmiş!Hala Bakım Yapılmamış! ----> 38 gün civarı gün geçtiği halde hata var. Benim dosyaya bakarsanız düzgün çalışıyor.

O zaman konun yanlış anlatım veya benim yanlış anlamam olmuş demekki
ben 30 geçmesi ile bu gün aralığında ise onu aldım kriter olarak
bu günden kritedeki tarihi 30 günden fazla geçmişse onuda 30 günden sonra kalan farkı buluyorum.
Ben böyle anladım ve bu doğrultuda yaptım kodlarımı.
Sorunu siz bildiğinize göre ve yaptığınıza göre sorun yok demektir.
Tebrik eder iyi çalışmalar dilerim.:cool:
 
O zaman konun yanlış anlatım veya benim yanlış anlamam olmuş demekki
ben 30 geçmesi ile bu gün aralığında ise onu aldım kriter olarak
bu günden kritedeki tarihi 30 günden fazla geçmişse onuda 30 günden sonra kalan farkı buluyorum.
Ben böyle anladım ve bu doğrultuda yaptım kodlarımı.
Sorunu siz bildiğinize göre ve yaptığınıza göre sorun yok demektir.
Tebrik eder iyi çalışmalar dilerim.:cool:

Elinize sağlık.

En son verdiğim dosyayı isteyen arkadaşlar inceleyebilirler. Zamanla geliştirdikçe burada paylaşacağım. Sorularım da olacak tabiki :)
 
Geri
Üst