Haritada İl Seçtiğimde İli Renklendirme

Katılım
16 Ekim 2018
Mesajlar
1
Excel Vers. ve Dili
2013 Türkçe
Merhaba ,

Bir haritam var. Haritayı sekiller bölümünden serbest çizim yaparak çizdim. Her ilin seklin adına ilin adını verdim. Şekle makro ata diyerek , şekle tıkladığımda a1 hücresine ilin adını yazdırıyorum. Fakat rengini değiştiremiyorum. Seçtiğim il siyah renk olsun başka bir ili seçtiğimde eski seçtiğim eski rengine geri dönsün yeni seçtiğim il siyah olsun istiyorum. Seçtiğimde siyah oluyor iller ama başka bir ili seçtiğimde eski rengine dönmüyor siyah kalıyor. Kod aşağıdaki gibi nerede hata yapıyorum acaba.

Başta bu şekilde yazdım. Ama bu şekliyle geri dönmüyor tabi.
Sub Edirne_Tıkla()
Range("A1").Value = "EDİRNE"
ActiveSheet.Shapes("Edirne").Fill.ForeColor.SchemeColor = 8


Sonra if ile denemek istedim ama bu sefer hiç renklendiremedim.

Sub Edirne_Tıkla()
Range("A1").Value = "EDİRNE"

If ActiveSheet.Shapes("Edirne").Select Then
ActiveSheet.Shapes("Edirne").Fill.ForeColor.SchemeColor = 8
Else
ActiveSheet.Shapes("Edirne").Fill.ForeColor.SchemeColor = 1
End If

Başka bir yönteme de açığım ama 81 il olduğu düşünülürse pratik bir şey arıyorum :)
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,830
Excel Vers. ve Dili
2019 Türkçe
Haritanın olduğu sayfaya aşağıdaki kodları kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
    Dim Bak As Shape
    For Each Bak In ActiveSheet.Shapes
        If Bak.Fill.ForeColor.ObjectThemeColor = 13 Then
            Bak.Fill.ForeColor = Bak.Line.ForeColor
            Exit For
        End If
    Next

    With ActiveSheet.Shapes.Range(Array([A1]))
        .Line.ForeColor = .Fill.ForeColor
        .Fill.ForeColor.ObjectThemeColor = 13
    End With
End Sub
 
Son düzenleme:
Üst