• DİKKAT

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

Çalışma kitabına eklenen kodların hatası

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
567
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Selamlar arkadaşlar

Ekteki dosyada çalışma kitabı kısmına eklenmesi gereken şu kodlar vardır.
Otomatik büyük harf kodları
Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Target.Value = UCase(Replace(Replace(Target.Value, "ı", "I"), "i", "İ"))
End Sub

Fakat eklendiğinde hata veriyor. Bu sorunu çözebilir miyiz
Renkli kısımlar kilitli hücrelerdir
 

Ekli dosyalar

Çok teşekkür ederim. Fakat Sayfa1 kod başlığı Worksheet SelectionChange değil de, Worksheet Change olması gerekiyor, çünkü hücreye veri girer girmez açıklama ekleniyor.

Worksheet SelectionChange olursa, hücreye veri girdikten sonra tekrar manuel olarak üstünden geçmek gerekiyor.
 
Sayfa kodunuzu aşağıdaki gibi değiştiriniz.

C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [B2:N1000]) Is Nothing Then
        ActiveSheet.Unprotect
        If Target.Cells.Count = 1 Then
            If Target.Value = "" Then
                Target.ClearComments
            Else
                Target.ClearComments
                Target.AddComment.Text vbLf & "Tarih" & vbLf & Now & vbLf
                Target.Comment.Shape.TextFrame.AutoSize = True
            End If
        ElseIf Target.Cells.Count > 1 Then
            Target.ClearComments
        End If
        ActiveSheet.Protect
    End If
End Sub

Çalışma kitabı kodunu aşağıdaki gibi değiştiriniz.

C++:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    Application.EnableEvents = False
    Target.Value = UCase(Replace(Replace(Target.Value, "ı", "I"), "i", "İ"))
    Application.EnableEvents = True
End Sub
 
Sayfa kodunuzu aşağıdaki gibi değiştiriniz.

C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [B2:N1000]) Is Nothing Then
        ActiveSheet.Unprotect
        If Target.Cells.Count = 1 Then
            If Target.Value = "" Then
                Target.ClearComments
            Else
                Target.ClearComments
                Target.AddComment.Text vbLf & "Tarih" & vbLf & Now & vbLf
                Target.Comment.Shape.TextFrame.AutoSize = True
            End If
        ElseIf Target.Cells.Count > 1 Then
            Target.ClearComments
        End If
        ActiveSheet.Protect
    End If
End Sub

Çalışma kitabı kodunu aşağıdaki gibi değiştiriniz.

C++:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    Application.EnableEvents = False
    Target.Value = UCase(Replace(Replace(Target.Value, "ı", "I"), "i", "İ"))
    Application.EnableEvents = True
End Sub
Çok teşekkür ederim. Düzeldi.
 
Geri
Üst