• DİKKAT

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

"Case Is >" koşulu Hk.

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Bir çalışmada rastladığım hatayı sizlerle de paylaşmak istiyorum.
Zaten Select Case yapısı pek kullanılmıyor. Belkide bu ve bunun gibi bazı şartlarda farklı sonuçlar vermesinden olabilir... Tespit ettiğim bir hata aşağıdadır.

Case Is > 10
Cells(i, "B") = "10' dan büyük"


Case Is ile kullandığım komutlarda büyük'de (Case Is >) değer metinsel ifade olsa bile
onuda şarta uygun olarak görüyor.

Küçük (Case Is < )olarak olarak kullanılan şartta sorun olmuyor.

Ekran Görüntüsü:
09112017_01.png


Kod:
Sub kod()

    Range("B:B").ClearContents

    For i = 1 To 20

        Select Case Cells(i, "A")

        Case "hüseyin": Cells(i, "B") = "isim 1"

        Case "hakan", "celal": Cells(i, "B") = "isim 2"

        Case Is = 7: Cells(i, "B") = "eşit 7"

[B][COLOR="DarkRed"]        Case Is > 10: Cells(i, "B") = "10' dan büyük"[/COLOR][/B]

        End Select

    Next i

End Sub

.
 

Ekli dosyalar

Bu örnek de A1 hücresine isim yazdığınızda uyumsuzluk vermeyecek ve 10 dan büyük diyecektir.
Kod:
Sub deneme1()
  If Cells(1, "A") > 10 Then
     MsgBox ("10 dan büyük")
  End If
End Sub

Bu örnek de ise sayısal ve metinsel değişken tanımları yaptığınız için uyumsuzluk hatası verecektir.

Kod:
Sub deneme2()
  Dim isim As String
  Dim sayi As Integer
  
  isim = "Asri"
  sayi = 10
  If isim > sayi Then
    MsgBox ("10 dan büyük")
  End If
End Sub

Sİzin örneğinizdeki sorun cell olarak okuma yaptığınızda bir sayısal değer oluşturuyor. Kodu aşağıdaki şekilde değiştiriseniz sanırım istediğiniz sonucu verecektir.

Kod:
Sub kod()
    Range("B:B").ClearContents

    For i = 1 To 20
        isim = Cells(i, "A").Value
        Select Case IsNumeric(isim)
        Case True
          Select Case isim
            Case Is = 7: Cells(i, "B") = "eşit 7"
            Case Is > 10: Cells(i, "B") = "10' dan büyük"
          End Select
        Case Else
             Select Case isim
                Case "hüseyin": Cells(i, "B") = "isim 1"
                Case "hakan", "celal": Cells(i, "B") = "isim 2"
             End Select
        End Select
    Next i
MsgBox "OK"

End Sub
 
Geri
Üst