Dolu Hücreleri Kenarlıklı (Çerçeveli) ile gösterilmesi

Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
ELimde Bir Veritabanı var ve bu Veritabanındaki Listeleri bir makro ile dolu olan Hücrelerin kenarlık ile ile çevrelenmesini istiyorum.

örneğin: C27 den başlayıp C99999 kadar olan satı ile Z27 den başlayıp Z99999 olan ve bunlar arasındaki satıarlarda dahil olmak üzere toplam 24 satır olmak üsre dolu hücreler kenarlıklı gösterecek. varsayılan olarak hücreler görünmüyor klavuz çizgileri kapalı.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
C ve Z kolonunda sadece dolu hücrelere çerçeve ekler.
Kod:
Sub Test()
    With Range("C:C, Z:Z").SpecialCells(xlCellTypeConstants, 23)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
Merhaba.
C ve Z kolonunda sadece dolu hücrelere çerçeve ekler.
Kod:
Sub Test()
    With Range("C:C, Z:Z").SpecialCells(xlCellTypeConstants, 23)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
bu şekilde çalıştı ama sadece c ve z sütunlarındaki hücleri kapsıyor C ve Z sütünu arasındaki tüm hücreleride yapmasını istiyorum. C27 ve Z27 den başlayacak şekilde toplam 24 kolon. '/ den başlamasının sebebi 1 ve 27 arasında sabit test ve commonbuttonlar var veri işleme bölümü. korumalı alan
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Kod:
Sub Test()
on error resume next
    With Range("C27:Z" & Rows.Count).SpecialCells(xlCellTypeConstants, 23)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
 
Son düzenleme:
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
bu şekilde oldu istediğim sütünları dolu olanları yaptı. ancak bazı alanlarıda boş hücreler olmasına rağmen satırı boydan boya hepsine kenarlık çizdi.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Boş hücreler dediğiniz hücrelerde muhtemelen formül vardır yada boşluk karakteri gibi görünmeyen bir karakter vardır.
Eğer dosyanızı paylaşırsanız kontrol edelim.
Dosyanızı dosya.tc gibi bir paylaşım sitesinde paylaşabilirsiniz.
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
dosyayı paylaşamıyorum bilgilerden dolayı. kontrol ettiğimde hücre boş olmasına rağmen içerisinde veri varmı görüyor ama onları düzeltiyorum. şuan şöylede bir durum doğdu: veritabanından veri çektiğimizde hiç veri gelmediği zaman hata veriyor dolu hücre bulamadığı için.
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Hata vermemesi için kodu düzenledim.
Dosyanızın tamamını paylaşmak zorunda değilsiniz.
Birkaç satır-sütun paylaşın. Özel bilgiler varsa benzer değerler ile değiştirin.
Boş olan ama çerçeve yapılan hücrelerden birkaç örnek mutlaka kalsın.
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
boş olan ama çerçeve yapan hücre sorununu çözdüm. hücre boş olmasına rağmen yani ben değer girmememiş olmama rağmen dolu görünüyormuş oınları hallettim. yardımlarınız için çok teşekkür ederim. diğer makrolarımın içine entegre ettim ayağa kaldırdım başarılı şekilde çalışıyor. son bir sorum daha olacak. önce bir sorgu yapıyorum ve değerler geliyor. sonrasında başka değer yaptığımda önceki değerlerden gelen ver kenarlık ile çerçeveleyen hücreler olduğu gibi kalıyor. resimlerle göstermek istedim
İlk Resim birinci sorguda değerler geliyor.
ikinci resim de ikinci sorgulamda hiç değer yok ama eski hücreler boş olmasına rağmen sayfa yenilemesi yapmadığı için önceki gibi kalıyor.
üçüncü sorguda 2 tane değer gelioypr va o satıdaki hücreler değişiyor ancak alttaki hücreler yine aynı.





 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu kullanın.

Kod:
Sub Test()
    With Range("C27:Z" & Rows.Count)
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Borders(xlEdgeBottom).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlInsideHorizontal).LineStyle = xlNone
    End With
    With Range("C27:Z" & Rows.Count).SpecialCells(xlCellTypeConstants, 23)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Option Explicit

Sub Insert_Borders()
    Application.ScreenUpdating = False
    With Range("C27:Z" & Rows.Count)
        .Borders.LineStyle = xlNone
        On Error Resume Next
        .SpecialCells(xlCellTypeConstants).Borders.LineStyle = 1
        On Error GoTo 0
    End With
    Application.ScreenUpdating = True
End Sub
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
Aşağıdaki kodu kullanın.

Kod:
Sub Test()
    With Range("C27:Z" & Rows.Count)
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Borders(xlEdgeBottom).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlInsideHorizontal).LineStyle = xlNone
    End With
    With Range("C27:Z" & Rows.Count).SpecialCells(xlCellTypeConstants, 23)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
başarılı hocam elinize sağlık hatasız isteğidim gibi çalışıyor.

Alternatif;

C++:
Option Explicit

Sub Insert_Borders()
    With Range("C27:Z" & Rows.Count)
        .Borders.LineStyle = xlNone
        On Error Resume Next
        .SpecialCells(xlCellTypeConstants).Borders.LineStyle = 1
        On Error GoTo 0
    End With
End Sub
buda aynı şekilde çalışıyor diğer koda oranla hada hızlı çalışıyor ve sonuç veriyor yani exceli anlık bir donma olmuyor.. ikiside hatasız ve istediğim sonuca ulaştırıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerdiğim koda küçük bir ekleme daha yaptım. Belki şimdi daha da iyi performans verebilir.
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
Alternatif;

C++:
Option Explicit

Sub Insert_Borders()
    Application.ScreenUpdating = False
    With Range("C27:Z" & Rows.Count)
        .Borders.LineStyle = xlNone
        On Error Resume Next
        .SpecialCells(xlCellTypeConstants).Borders.LineStyle = 1
        On Error GoTo 0
    End With
    Application.ScreenUpdating = True
End Sub
kodun çalışma prensibini anlatabilir misiniz hocam. step step. eğer mümkünse
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bunu en güzel kodu F8 tuşu ile adım adım çalıştırarak kendiniz görebilirsiniz.
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
farklı sayfalardaki verileri bir sayfada toplayıp çağırıyorum oyüzden bu makroyu kullanurken kodun karşısında 'yorum şeklinde ne yapılmak istendiğini kastdetmiştim. başka bir arkadaşıma anlatıcam. ben çalışma prensibini anladım da kod kısmında başkasına aktaramadım :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kısaca;

Belirlenen hücre aralığındaki dolu hücrelere kenarlık ekleniyor.
 
Katılım
10 Şubat 2023
Mesajlar
9
Excel Vers. ve Dili
Excel - Acces Veritabanı 2016
ilginiz için teşekkür ederim kolay gelsin elinize sağlık
 
Üst