gurbuzs
Altın Üye
- Katılım
- 10 Kasım 2004
- Mesajlar
- 203
- Excel Vers. ve Dili
- Office 360 Tr
Ekli dosyalar
Son düzenleme:
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Merhaba.
Dosyanız ekte inceleyiniz.
Sadece bir defa servise gelmiş olan araç için bir sonraki servis tarihine 365 gün eklenmiştir. Diğerlerinin önceki servis aralıklarının ortalaması alınmıştır.
Private Sub btnTahmin_Click()
Dim Bak As Long
Dim Plaka As Range
Dim Ortalama() As Double
Dim IlkAdres As String
Dim Tarih As Date
Dim Say As Integer
ReDim Ortalama(0)
For Bak = 2 To Cells(Rows.Count, "I").End(xlUp).Row
With Range("C:C")
Set Plaka = .Find(What:=Cells(Bak, "I").Value, LookAt:=xlWhole)
IlkAdres = Plaka.Address
If Not Plaka Is Nothing Then
Tarih = Cells(Plaka.Row, "B")
Do
Set Plaka = .FindNext(Plaka)
If IlkAdres = Plaka.Address Then Exit Do
ReDim Preserve Ortalama(Say)
Ortalama(UBound(Ortalama)) = Cells(Plaka.Row, "B") - Tarih
Tarih = Cells(Plaka.Row, "B")
Say = Say + 1
Loop While Not Plaka Is Nothing
End If
End With
If Ortalama(0) = 0 Then
Cells(Bak, "J").Value = DateAdd("d", 365, Tarih)
Else
Cells(Bak, "J").Value = DateAdd("d", WorksheetFunction.Average(Ortalama), Tarih)
End If
Say = 0
ReDim Ortalama(Say)
Next
MsgBox "Tamamlandı"
End Sub
şimdi oldu ....Kodları aşağıdakilerle değiştirin.
Kod:Private Sub btnTahmin_Click() Dim Bak As Long Dim Plaka As Range Dim Ortalama() As Double Dim IlkAdres As String Dim Tarih As Date Dim Say As Integer ReDim Ortalama(0) For Bak = 2 To Cells(Rows.Count, "I").End(xlUp).Row With Range("C:C") Set Plaka = .Find(What:=Cells(Bak, "I").Value, LookAt:=xlWhole) IlkAdres = Plaka.Address If Not Plaka Is Nothing Then Tarih = Cells(Plaka.Row, "B") Do Set Plaka = .FindNext(Plaka) If IlkAdres = Plaka.Address Then Exit Do ReDim Preserve Ortalama(Say) Ortalama(UBound(Ortalama)) = Cells(Plaka.Row, "B") - Tarih Tarih = Cells(Plaka.Row, "B") Say = Say + 1 Loop While Not Plaka Is Nothing End If End With If Ortalama(0) = 0 Then Cells(Bak, "J").Value = DateAdd("d", 365, Tarih) Else Cells(Bak, "J").Value = DateAdd("d", WorksheetFunction.Average(Ortalama), Tarih) End If Say = 0 ReDim Ortalama(Say) Next MsgBox "Tamamlandı" End Sub