Macro (değerler arasında başarılı veya başarısız)

Katılım
7 Mayıs 2020
Mesajlar
17
Excel Vers. ve Dili
Ofis 2016 dili ingilizce
Merhaba Arkadaşlar,

excelde süresi verilen (saat cinsinden) bir işin için aşağıdaki kriterler yer almaktadır.Bu kriterlere göre sorgumu yapmaya çalıştım.Fakat sorguda b = "Başarılı" tarafı çalışmıyor.

0-4 saat arasında ve critical ise başarılı değilse başarısız.
4> and <=8 saat arasında ve High ise başarılı değilse başarısız
8> and <=16 saat arasında ve High ise başarılı değilse başarısız
16> and <=24saat arasında ve High ise başarılı değilse başarısız

Sub deneme()

For i = 2 To 1000

a = Cells(i, 9) 'Süre (saat) kolonu
b = Cells(i, 10) 'Başarı durumu kolonu
x = Cells(i, 12) 'T Severity_ kolonu

If x = "Critical" And a <= 4 Then Cells(i, 10) = b ' T Severity_ kolonuna Süre (saat) kolonu bak <=4 kuçük ise 10. kolona başarı durumunu yaz

If x = "High" And a > 4 And a <= 8 Then b = "Başarılı"
If x = "Medium" And a > 8 And a <= 16 Then b = "Başarılı"
If x = "Low" And a > 16 And a <= 24 Then b = "Başarılı"

Else b = "Başarısız"

Next i


End Sub
 
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Aşağıdaki şekilde deneyiniz.
Kod:
Sub deneme()
For i = 2 To 1000
If Cells(i, 12) = "Critical" And Cells(i, 9) * 24 < 4 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "High" And Cells(i, 9) * 24 > 4 And Cells(i, 9) * 24 <= 8 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "Medium" And Cells(i, 9) * 24 > 8 And Cells(i, 9) * 24 <= 16 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "Low" And Cells(i, 9) * 24 > 16 And Cells(i, 9) * 24 <= 24 Then
Cells(i, 10) = "Başarılı"
Else
Cells(i, 10) = "Başarısız"
End If
Next i
End Sub
 
Katılım
7 Mayıs 2020
Mesajlar
17
Excel Vers. ve Dili
Ofis 2016 dili ingilizce
Aşağıdaki şekilde deneyiniz.
Kod:
Sub deneme()
For i = 2 To 1000
If Cells(i, 12) = "Critical" And Cells(i, 9) * 24 < 4 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "High" And Cells(i, 9) * 24 > 4 And Cells(i, 9) * 24 <= 8 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "Medium" And Cells(i, 9) * 24 > 8 And Cells(i, 9) * 24 <= 16 Then
Cells(i, 10) = "Başarılı"
ElseIf Cells(i, 12) = "Low" And Cells(i, 9) * 24 > 16 And Cells(i, 9) * 24 <= 24 Then
Cells(i, 10) = "Başarılı"
Else
Cells(i, 10) = "Başarısız"
End If
Next i
End Sub
Merhaba Arkadaşlar herkeze çok teşekkür ederim

bu şekilde çalıştı.

Sub deneme()

For i = 2 To 1000

If Cells(i, 12) = "Urgent" And Cells(i, 9) < 4 Then
Cells(i, 10) = "Başarılı"

ElseIf Cells(i, 12) = "High" And Cells(i, 9) <= 8 Then
Cells(i, 10) = "Başarılı"

ElseIf Cells(i, 12) = "Medium" And Cells(i, 9) <= 16 Then
Cells(i, 10) = "Başarılı"

ElseIf Cells(i, 12) = "Low" And Cells(i, 9) <= 24 Then
Cells(i, 10) = "Başarılı"

Else
Cells(i, 10) = "Başarısız"

End If

Next i

End Sub
 
Üst