• DİKKAT

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

Koşullu Biçimlendirme kodunun İngilizce formüllerle yapılması

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba Arkadaşlar,
Aşağıda Korhan Ayhan üstada ait VBA Kodu var. Bu koddaki Türkçe formülleri İngilizce yazmanın bir yolu var mıdır ?

Sub Bicimlendir()
With Range("C7:C999")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
.FormatConditions(.FormatConditions.Count).StopIfTrue = True
End With
End Sub
 
Merhaba,
Şuradaki konudan faydalanabilirsiniz. Bir de formüllerdeki noktalı virgül(; ) yerine virgül(,) yazmanız gerekebilir.
 
Merhaba,
Şuradaki konudan faydalanabilirsiniz. Bir de formüllerdeki noktalı virgül(; ) yerine virgül(,) yazmanız gerekebilir.
ÖmerBey ilginize teşekkür ederim. Ama ihtiyacım formülleri çevirmek değil, ingilizce formüllerle uygulamak. Şöyle ki, formülleri ingilizceye çevirip uyguladım, kod hata vermedi ama Koşullu Biçimlendirme olmadı
 
Türkçe versiyonda İngilizce formül kullanmak istiyorsanız bildiğim kadarıyla bu mümkün değil. Nasıl ki hücreye İngilizce formül yazdığınızda çalışmıyorsa.
Ancak biraz dolambaçlı şekilde aşağıdaki şekilde bir dönüşüm uygulanabilir belki...
Son hücre İngilizce formülü yerel dile çevirmek için kullanılıyor.
Rich (BB code):
Sub Bicimlendir()
frml = "=IF(AND($C7<>"""",COUNTIF(O:O,$M7)=0),1,0)"
With Cells(Rows.Count, Columns.Count)
    .Formula = frml
    yrlfrml = .FormulaLocal
    .Clear
End With
With Range("C7:C999")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=yrlfrml
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
.FormatConditions(.FormatConditions.Count).StopIfTrue = True
End With
End Sub
 
Türkçe versiyonda İngilizce formül kullanmak istiyorsanız bildiğim kadarıyla bu mümkün değil. Nasıl ki hücreye İngilizce formül yazdığınızda çalışmıyorsa.
Ancak biraz dolambaçlı şekilde aşağıdaki şekilde bir dönüşüm uygulanabilir belki...
Son hücre İngilizce formülü yerel dile çevirmek için kullanılıyor.
Rich (BB code):
Sub Bicimlendir()
frml = "=IF(AND($C7<>"""",COUNTIF(O:O,$M7)=0),1,0)"
With Cells(Rows.Count, Columns.Count)
    .Formula = frml
    yrlfrml = .FormulaLocal
    .Clear
End With
With Range("C7:C999")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=yrlfrml
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
.FormatConditions(.FormatConditions.Count).StopIfTrue = True
End With
End Sub
ÖmerBey üstadım çok çok teşekkür ederim. ilk fırsatta deneyeceğim. Sağlıcakla kalın
 
Bu işlemi ne amaçla istiyorsunuz?
İlgine teşekkürler üstad. Kodu yazdım, Ofis paketi İngilizce olan bir arkadaşımda çalışmadı. Kodun Koşullu Biçimlendirmede Türkçe yazan aşamasında takılıyor. Tam sebebi o mu bilmiyorum ama daha önce de Türkçe karakterlerden ötürü sorun olduğu için aklıma geldi.
 
Ofisin dili kontrol edilerek bir şeyler yapılabilir.

Deneyiniz.

C++:
Option Explicit

Sub Bicimlendir()
    Dim Formul As String
   
    Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
        Case 1033
            If Application.DecimalSeparator = "," Then
                Formul = "=IF(AND($C7<>"""";COUNTIF(O:O;$M7)=0);1;0)"
            Else
                Formul = "=IF(AND($C7<>"""",COUNTIF(O:O,$M7)=0),1,0)"
            End If
        Case 1055
            Formul = "=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
        Case Else
            MsgBox "Dil tespit edilemedi!", vbCritical
            Exit Sub
    End Select
   
    With Range("C7:C999")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=Formul
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True
    End With
End Sub
 
Ofisin dili kontrol edilerek bir şeyler yapılabilir.

Deneyiniz.

C++:
Option Explicit

Sub Bicimlendir()
    Dim Formul As String
   
    Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
        Case 1033
            If Application.DecimalSeparator = "," Then
                Formul = "=IF(AND($C7<>"""";COUNTIF(O:O;$M7)=0);1;0)"
            Else
                Formul = "=IF(AND($C7<>"""",COUNTIF(O:O;$M7)=0),1,0)"
            End If
        Case 1055
            Formul = "=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
        Case Else
            MsgBox "Dil tespit edilemedi!", vbCritical
            Exit Sub
    End Select
   
    With Range("C7:C999")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=Formul
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True
    End With
End Sub
Çok teşekkür ederim üstad. Harika oldu
 
Ofisin dili kontrol edilerek bir şeyler yapılabilir.

Deneyiniz.

C++:
Option Explicit

Sub Bicimlendir()
    Dim Formul As String
   
    Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
        Case 1033
            If Application.DecimalSeparator = "," Then
                Formul = "=IF(AND($C7<>"""";COUNTIF(O:O;$M7)=0);1;0)"
            Else
                Formul = "=IF(AND($C7<>"""",COUNTIF(O:O;$M7)=0),1,0)"
            End If
        Case 1055
            Formul = "=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
        Case Else
            MsgBox "Dil tespit edilemedi!", vbCritical
            Exit Sub
    End Select
   
    With Range("C7:C999")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=Formul
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True
    End With
End Sub
Korhan Ayhan Üstadım acaba şöyle bir şey mümkün mü ?
A1:C11 aralığında çift satır numaralarını (2-4-6-8-10) "Interior.ColorIndex = 3" yapılabilir mi ?
Biçim kopyalama yöntemiyle yapılabiliyor ama farklı bir kod olur mu !
 
O zaman istediğiniz işlemin bu başlıkla bir bağlantısı kalmadığı için yeni bir başlık açmanız daha uygun olacaktır.
 
Geri
Üst