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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
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