Harita renklendirme

Katılım
9 Ocak 2014
Mesajlar
55
Excel Vers. ve Dili
Office 365 64bit
Altın Üyelik Bitiş Tarihi
03-12-2024
Merhabalar ,
harita üzerinde illeri alttaki bölgelere göre ilgili renklere boyamak istiyorum ama beceremedim :(
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba bu konuda forumda örnekler olması lazım.

Sayfaya bir adet şekil/düğme/metin kutusu ekleyin ve bu nesne ile aşağıdaki kod'u bağlayın,
bu nesneye tıkladığınızda istediğiniz işlem gerçekleşir.

NOT: İSTANBUL ilinin bölgesini AVRUPA veya ANADOLU yazmayı unutmayın.
.
Rich (BB code):
Sub BOLGELER()
adet = ActiveSheet.Shapes.Count
Application.ScreenUpdating = False
For sekil = 1 To adet
    isim = ActiveSheet.Shapes(sekil).Name
    If Mid(isim, 1, 9) = "Freeform " Then
    Set r = [A29:A109].Find(Replace(isim, "Freeform ", ""), , , xlWhole)
    If Not r Is Nothing Then
        renk = Cells(WorksheetFunction.Match(Cells(r.Row, 4), [J29:J36], 0) + 28, "I").Interior.Color
        R1 = renk Mod 256
        G1 = (renk \ 256) Mod 256
        B1 = (renk \ 256 \ 256) Mod 256
        ActiveSheet.Shapes(sekil).Select
            With Selection.ShapeRange.Fill
                .Visible = msoTrue: .ForeColor.RGB = RGB(R1, G1, B1)
            End With
    End If
    End If
Next
[A1].Activate
Application.ScreenUpdating = True
MsgBox "İşlem tamam.", vbInformation, "..:: Ömer BARAN ::.."
End Sub
 
Son düzenleme:

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,402
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Alternatif olsun... Ekteki dosyayı inceleyiniz.

Düzeltme: Ekteki dosyayı il ismine göre yapmıştım, Freeform no sütununu yeni farkettim. Freeform numarasına göre şu kodlarla doğrudan renklendirme yapılabilir. (Ekteki dosyadaki kodlar birazcık farklı)
Kod:
Sub Renklendir()
Dim hcr As Range, bolge As Range
Application.ScreenUpdating = False
For Each hcr In Range(Cells(29, "A"), Cells(Rows.Count, "A").End(3))
    Set bolge = Range("J29:J36").Find(hcr.Offset(0, 3).Value)
    ActiveSheet.Shapes("Freeform " & hcr.Value).Select
    If Not bolge Is Nothing Then
        Selection.Interior.Color = bolge.Offset(0, -1).Interior.Color
    Else
        Selection.Interior.ColorIndex = 0
    End If
Next
Application.ScreenUpdating = True
Range("A1").Select
MsgBox "İşlem tamam."
End Sub
 

Ekli dosyalar

Son düzenleme:
Üst