VBA - If ile Harf notu

Katılım
18 Nisan 2022
Mesajlar
23
Excel Vers. ve Dili
Sürüm 2203, Türkçe
B1 hücresine 0-100 arasında girilen başarı notunun harf notu karşılığını B2 hücresine yazacak fonksiyonun kodlarını yazmak gerekiyor. Kod fonksiyon şeklinde if koşulu ile yazılacak, yardımcı olur musunuz?
Başarı Notu Harf Notu
88-100 AA
81-87 BA
74-80 BB
67-73 CB
60-66 CC
53-59 DC
46-52 DD
0-45 FD
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
İngilizce Excel:
Kod:
=LOOKUP(B1;{0;46;53;60;67;74;81;88};{"FD";"DD";"DC";"CC";"CB";"BB";"BA";"AA"})


Türkçe Excel:
Kod:
=ARA(B1;{0;46;53;60;67;74;81;88};{"FD";"DD";"DC";"CC";"CB";"BB";"BA";"AA"})
.
 
Katılım
18 Nisan 2022
Mesajlar
23
Excel Vers. ve Dili
Sürüm 2203, Türkçe
İngilizce Excel:
Kod:
=LOOKUP(B1;{0;46;53;60;67;74;81;88};{"FD";"DD";"DC";"CC";"CB";"BB";"BA";"AA"})


Türkçe Excel:
Kod:
=ARA(B1;{0;46;53;60;67;74;81;88};{"FD";"DD";"DC";"CC";"CB";"BB";"BA";"AA"})
.
Hocam çok teşekkürler Excel kısmında yapıyorum problem yok ama, VBA ile If kodları şeklinde olması gerekiyor
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"If-Else-Then" yerine, aynı formülün VBA şekli;

C#:
Sub Test()
    Range("B2") = Application.Lookup(Range("B1"), Array(0, 46, 53, 60, 67, 74, 81, 88), Array("FD", "DD", "DC", "CC", "CB", "BB", "BA", "AA"))
End Sub

Yoksa, ev ödevi falan mı bu ? İllaki If-Else çözülmesi istenen....


.
 
Katılım
18 Nisan 2022
Mesajlar
23
Excel Vers. ve Dili
Sürüm 2203, Türkçe
Evet hocam alıştırma tarzı bir şey. Kodunuz çalıştı fakat if koşuluyla birlikte çalıştırmam gerekiyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
C#:
Sub Test2()
    Dim examGrade As Integer, strGrade As String
    
    examGrade = Range("B1")
    
    If examGrade >= 88 And examGrade < 100 Then
        strGrade = "AA"
    ElseIf examGrade >= 81 And examGrade <= 87 Then
        strGrade = "BA"
    ElseIf examGrade >= 74 And examGrade <= 80 Then
        strGrade = "BB"
'   .........
'   ......
'   ....
    ElseIf examGrade >= 0 And examGrade <= 45 Then
        strGrade = "FD"
    Else
        strGrade = "HATALI NOT!"
    End If
    
    Range("B2") = strGrade
End Sub
.
 
Katılım
18 Nisan 2022
Mesajlar
23
Excel Vers. ve Dili
Sürüm 2203, Türkçe
C#:
Sub Test2()
    Dim examGrade As Integer, strGrade As String
   
    examGrade = Range("B1")
   
    If examGrade >= 88 And examGrade < 100 Then
        strGrade = "AA"
    ElseIf examGrade >= 81 And examGrade <= 87 Then
        strGrade = "BA"
    ElseIf examGrade >= 74 And examGrade <= 80 Then
        strGrade = "BB"
'   .........
'   ......
'   ....
    ElseIf examGrade >= 0 And examGrade <= 45 Then
        strGrade = "FD"
    Else
        strGrade = "HATALI NOT!"
    End If
   
    Range("B2") = strGrade
End Sub
.
Çok teşekkür ederim, tam da gerektiği gibi, kalanı da tamamladım çalışma prensibini anlamama yardımcı oldu.
 
Üst