Çözüldü Eğerli makro

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("G6:G250,I6:S250")) Is Nothing Then Exit Sub
    If UCase(Cells(Target.Row, "G")) = "KDV'li" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "L") = Round(Cells(Target.Row, "K") * 8 / 100, 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "N") = Round(Cells(Target.Row, "L") / 2, 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "L") + Cells(Target.Row, "M") + Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
        
    ElseIf UCase(Cells(Target.Row, "G")) = "KDV'SİZ" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "L") + Cells(Target.Row, "M") + Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
    Else
        If UCase(Cells(Target.Row, "G")) = "" Then

        MsgBox "Lütfen Vergi Türünü giriniz !", vbCritical
    End If
    End If
End Sub
G sütunu KDV' li ise alttaki makro
G Sütunu KDV'siz ise onun altındaki makro kodunun çalışmasını istedim. Ancak işlem yapmadı.
Rica etsem hatalı yaptığım yeri ve düzeltilmiş hali için yardımcı olabilir misiniz?

Saygılarımla
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

UCase(Cells(Target.Row, "G")) yerine aşağıdaki gibi yazın.

UCase(Replace(Replace(Cells(Target.Row, "G"), "ı", "I"), "i", "İ"))

Ayrıca kodlardaki 1.şart olan "KDV'li" değerini kodların içinde büyük harf yazmanız gerekir. "KDV'Lİ"

.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Teşekkür ederim. Birde 2. koşul da sıkıntı var mı
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
UCase(Replace(Replace(Cells(Target.Row, "G"), "ı", "I"), "i", "İ"))

Bu değeri 1. ve 2. koşul için değiştirmeniz gerekir.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("G6:G250,I6:S250")) Is Nothing Then Exit Sub
    If UCase(Replace(Replace(Cells(Target.Row, "G"), "ı", "I"), "i", "İ")) = "KDV'Lİ" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "L") = Round(Cells(Target.Row, "K") * 8 / 100, 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "N") = Round(Cells(Target.Row, "L") / 2, 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
        
    ElseIf UCase(Replace(Replace(Replace(Cells(Target.Row, "G"), "s", "S"), "i", "İ"), "z", "Z")) = "KDV'SİZ" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
    Else
        If UCase(Cells(Target.Row, "G")) = "" Then

        MsgBox "Lütfen Vergi Türünü giriniz !", vbCritical
    End If
    End If
End Sub
Ömer abi eğer kod doğru ise bu sefer de "Excel Yanıt vermiyor" hatası veriyor.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bu şekilde deneyin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("G6:G250,I6:S250")) Is Nothing Then Exit Sub
    
    On Error GoTo atla
    Application.EnableEvents = False
    
    If UCase(Replace(Replace(Cells(Target.Row, "G"), "ı", "I"), "i", "İ")) = "KDV'Lİ" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "L") = Round(Cells(Target.Row, "K") * 8 / 100, 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "N") = Round(Cells(Target.Row, "L") / 2, 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
        
    ElseIf UCase(Replace(Replace(Cells(Target.Row, "G"), "ı", "I"), "i", "İ")) = "KDV'SİZ" Then
        Cells(Target.Row, "K") = Round(Cells(Target.Row, "I") * Cells(Target.Row, "J"), 2)
        Cells(Target.Row, "M") = Round(Cells(Target.Row, "K") + Cells(Target.Row, "L"), 2)
        Cells(Target.Row, "O") = Round(Cells(Target.Row, "K") * 0.00948, 2)
        Cells(Target.Row, "T") = Round(Cells(Target.Row, "N") + Cells(Target.Row, "O") + Cells(Target.Row, "P") + Cells(Target.Row, "Q") + Cells(Target.Row, "R") + Cells(Target.Row, "S"), 2)
        Cells(Target.Row, "U") = Round(Cells(Target.Row, "K") - Cells(Target.Row, "T"), 2)
    Else
        If UCase(Cells(Target.Row, "G")) = "" Then
            MsgBox "Lütfen Vergi Türünü giriniz !", vbCritical
        End If
    End If
    Application.EnableEvents = True
    Exit Sub
atla:
    Application.EnableEvents = True
End Sub
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Allah Yar ve Yardımcınız Olsun. Teşekkür eder, saygılarımı sunarım
 
Üst