• DİKKAT

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

Açıklama Sorunu..!

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Aşağıdaki kod, Şartlar sayfasında yazan notları açıklama olarak gösteriyor. Sorun şu.
1. Açıklamanın gelmesi için hücreyi terk edip, tekrar hücreye giriş yapıldığında açıklama geliyor.
2. Var sayalım ki açıklama ikinci girişte geldi. Hücreyi C sütun aralığında geçiş yaptığımızda açıklama gizleniyor. Yan hücrelere geçiş yaptığım da ise açıklama hala aktif olarak görünüyor.
Veri girildiğinde ikinci bir giriş olmadan açıklama olmalı, Yön tuşları ya da Mouse ile üzerine gelindiğinde açıklama açılsın, terk edildiğinde ise açıklama gizlenmesi gerekiyor.
Koddaki bu sorunu nasıl düzenleye biliriz.
Örnek dosya ektedir. Çalışma sayfasının C sütunu nu kontrol edelim Lütfen.





Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim S1 As Worksheet, BUL As Range, Hücre As Range
 
    Set S1 = Sheets("ŞARTLAR")
 
    If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
 
    On Error Resume Next
    
    For Each Hücre In Range("C1:C" & Cells(Rows.Count, 3).End(3).Row)
        Hücre.Comment.Visible = False
    Next

    For Each Hücre In Selection
        Hücre.Comment.Delete
        If Hücre.Column = 3 And Hücre.Value <> "" Then
            Set BUL = S1.Range("B:B").Find(Hücre.Text, , , xlPart)
            If Not BUL Is Nothing Then
                Hücre.AddComment (BUL.Offset(0, 1).Text)
                Hücre.Comment.Visible = True
            End If
        End If
    Next
End Sub
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki gibi deneyiniz.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim S1 As Worksheet, BUL As Range, Hücre As Range
 
    Set S1 = Sheets("ŞARTLAR")
 
    On Error Resume Next
    
    For Each Hücre In Range("C1:C" & Cells(Rows.Count, 3).End(3).Row)
        Hücre.Comment.Visible = False
    Next

    If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
 
    For Each Hücre In Selection
        Hücre.Comment.Delete
        If Hücre.Column = 3 And Hücre.Value <> "" Then
            Set BUL = S1.Range("B:B").Find(Hücre.Text, , , xlPart)
            If Not BUL Is Nothing Then
                Hücre.AddComment (BUL.Offset(0, 1).Text)
                Hücre.Comment.Visible = True
            End If
        End If
    Next
End Sub
 
Merhaba, Korhan Bey,
Kodda çok güzel iyileştirilmeler olmuş, fakat yukarıda yazdığım 1 numaralı sorun hala geçerli. İsmi bulup seçtikten sonra hücreyi terk edince açıklamanın gelmesi gerekiyor. Hücreye yine ikinci bir girişte İsme ait bilgi açıklama şeklinde geliyor.
Bu durumu da iyileştirmek için yardımcı olabilir misiniz?
 
Bu durumda aynı kodları sayfanızın "Change" olayına da yazmanız gerekir. Böylece isim seçince direkt olarak hücreye açıklama eklenir.
 
Sayfanın Change olayına da yapabilirim bu kodu, fakat çok fazlasıyla change olayı var, eğer bu şekilde eklemiş olursam diğer kodların çalışması kısıtlanıyor. Yani ne şekilde denedimse illaki kodlardan birileri kısıtlanıyor.

Kısa bir kodla bu işi çözebilir miyiz. Aşağıdaki kod gibi, gibi.

Kod:
    ActiveCell.Comment.Visible = True
 
Ben size olabilecek çözümü önerdim. Sizin bahsettiğiniz satır aktif hücredeki açıklamayı gizler. Eğer sizce bu çözüm uygunsa kullanabilirsiniz.

Exceli bir inşaat gibi düşünün. Bütün kurgularınız bir başka kurguyu etkiler. Kurguları da tuğlalar gibi düşünün... Tüm kurgularınızı bu şekilde düşünerek tasarlamanızda fayda var.
 
Merhaba Korhan Bey,
İma ettiğiniz olayı anlıyorum. Umarım o tuğlaları yerlerine doğru bi şekilde düzenleyebilirim, biraz emek ve zamandan sonra.

Teşekkür ederim.

İyi geceler.
 
Merhaba,
Korhan Bey, benim tabirime 1 numaralı sorun sanırsam yine bu kodla alakalı diye düşünüyorum. Eğer bu koddan değilse, ikinci bir girişte neden açıklama geliyor. O zamanda gelmemesi gerekmez mi? Hücreyi giriş yapmakta terk etmekte, makro için farklı olay değildir her halde. Tabi benim bilgim bunu çözmeye yetecek gibi değil ama. Yine de dikkatimi çekti.
 
Geri
Üst