Çözüldü Aktif Hücrelere VBA ile Kenarlık Ekleme

Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
Merhaba,

Sürekli satır sayısı değişen bir raporum mevcut. Bu raporumda A:B, D:E, G:H hücrelerinde işlemler oluyor. Bu sütunlarda dolu olan hücrelere kenarlık eklemek istiyorum. Elimde sadece belirtilen satır kadar kenarlık eklemek için kod var. Kıymetli bilgi ve yardımlarınızı rica ederim.

Kod:
Dim N As Integer
For N = 1 To 4
[A1:B60].Borders(N).LineStyle = 1
'[A1:B60].Borders(x).Color = RGB(255, 255, 0)'Sarı Renkte olması için aktif edilebilir.
Next N
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,829
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aşağıdaki kodları kullanın.

Kod:
Sub KenarlıkEkle()
    Dim N As Integer
    Dim SonSatir As Long
    SonSatir = Cells(Rows.Count, "A").End(3).Row
    For N = 1 To 4
        Range("A1:B" & SonSatir).Borders(N).LineStyle = 1
        Range("D1:E" & SonSatir).Borders(N).LineStyle = 1
        Range("G1:H" & SonSatir).Borders(N).LineStyle = 1
    Next N
End Sub
 
Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
Merhaba.

Aşağıdaki kodları kullanın.

Kod:
Sub KenarlıkEkle()
    Dim N As Integer
    Dim SonSatir As Long
    SonSatir = Cells(Rows.Count, "A").End(3).Row
    For N = 1 To 4
        Range("A1:B" & SonSatir).Borders(N).LineStyle = 1
        Range("D1:E" & SonSatir).Borders(N).LineStyle = 1
        Range("G1:H" & SonSatir).Borders(N).LineStyle = 1
    Next N
End Sub
Üstadım merhaba,

Verdğiniz kodlar Asütunundaki dolu satır kadar tablo yapıyor. Oysaki A1:B, D1:E, G1:H sütunları her biri birbirinden fakrlı tablolar ve satır adeti içerdiğinden her birinin benzersiz olması için uğraşıyorum. Kıymetli yardımlarınızı rica ederim.


Ayrıca her tablo birbirinden farklı olduğundan, çözüm önerisi olarak, verdiğniiz kodları 3'e böldüm. Başarılı sonuç aldım. Tabii daha kısa bir kod ile destekleyebilirseniz bundan sonraki kullanımlarım için daha iyi olur. Teşekkür ederim,

Dim N As Integer
Dim SonSatir As Long
SonSatir = Cells(Rows.Count, "A").End(3).Row
For N = 1 To 4
Range("A1:B" & SonSatir).Borders(N).LineStyle = 1
Next N

Dim Z As Integer
Dim SonSatir1 As Long
SonSatir1 = Cells(Rows.Count, "D").End(3).Row
For Z = 1 To 4
Range("D1:E" & SonSatir1).Borders(Z).LineStyle = 1
Next Z


Dim N1 As Integer
Dim SonSatir2 As Long
SonSatir2 = Cells(Rows.Count, "G").End(3).Row
For N1 = 1 To 4
Range("G1:H" & SonSatir2).Borders(N1).LineStyle = 1
Next N1
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,829
Excel Vers. ve Dili
2019 Türkçe
O zaman aşağıdaki kodları kullanın.

Kod:
Sub KenarlıkEkle()
    Dim N As Integer
    For N = 1 To 4
        Range("A1:B" & Cells(Rows.Count, "A").End(3).Row).Borders(N).LineStyle = 1
        Range("D1:E" & Cells(Rows.Count, "D").End(3).Row).Borders(N).LineStyle = 1
        Range("G1:H" & Cells(Rows.Count, "G").End(3).Row).Borders(N).LineStyle = 1
    Next N
End Sub
 
Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
O zaman aşağıdaki kodları kullanın.

Kod:
Sub KenarlıkEkle()
    Dim N As Integer
    For N = 1 To 4
        Range("A1:B" & Cells(Rows.Count, "A").End(3).Row).Borders(N).LineStyle = 1
        Range("D1:E" & Cells(Rows.Count, "D").End(3).Row).Borders(N).LineStyle = 1
        Range("G1:H" & Cells(Rows.Count, "G").End(3).Row).Borders(N).LineStyle = 1
    Next N
End Sub
Üstadım, emeğinize sağlık. Teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
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.

Konu çözülmüş ancak alternatif olsun.

Sayın @dalgalikur 'un verdiği kod, aşağıdaki şekilde düzenlendiğinde de aynı sonuç alınabilir.
Rich (BB code):
Sub KenarlıkRenkEkle()
    For N = 1 To 7 Step 3
        Range(Cells(1, N), Cells(Cells(Rows.Count, N).End(3).Row, N + 1)).Borders.LineStyle = 1
        Range(Cells(1, N), Cells(Cells(Rows.Count, N).End(3).Row, N + 1)).Interior.ColorIndex = 6
    Next N
End Sub
 
Son düzenleme:
Katılım
6 Mart 2005
Mesajlar
6,238
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Sayın ridvanucok
Kenarlık ve sarı renk istemişti.
Alternatif olarak kenarlık ve sarı renk
Kod:
Sub kenarrenk()
Dim alan As Range:Dim s1 As worksheet
Set s1 = Sheets("Sayfa1")
Application.ScreenUpdating = False
For Each alan In Range("A1:H" & s1.UsedRange.Rows.Count)
If alan.Column <> 3 And alan.Column <> 6 And alan <> "" Then
alan.Borders.LineStyle = xlContinuous
alan.Interior.Color = RGB(255, 255, 0)
Else
alan.Borders.LineStyle = xlNone
alan.Interior.Color = xlNone
End If
Next
Application.ScreenUpdating = True
End Sub
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
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.
.
Renk ile ilgili bir istek fark edemedim ama, son cevabımdaki kod'u renk için ekleme yaparak güncelledim.
.
 
Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
Üstadlarım, ilginizden dolayı hepinize teşekkür ederim. Tüm verdiğiniz kodlar ile sonuca başarılı bir şekilde ulaştım.

Saygılarımla,
 
Katılım
14 Şubat 2012
Mesajlar
25
Excel Vers. ve Dili
mic. of. 2016
Altın Üyelik Bitiş Tarihi
28-05-2021
Üstadım, emeğinize sağlık. Teşekkür ederim.
Hocam kod çalışıyor ama 1. hücreden başlıyor. Ek resimdeki için nasıl bişey yapabiliriz. Sizin kodu denedim sayfa yapısını bozdu
 

Ekli dosyalar

Üst