Çözüldü Hızlı Bir Şekilde Satır Boyamak

orhanyildi

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Bir excel sayfasında teyit ettiğim verilerin satırlarını boyuyorum en son dolgusuz kalan hücreleri filtreleyip çalışmayı tamamliyorum. F4 ile son hareketimi tekrar edebiliyorum fakat araya kopyala yapıştır girdigi oluyor F4 dogal olarak o işlemi tekrar ediyor. Alt tuşuna basip klavyeden gitmeyi düşündüğümde birçok tuşa basmama ragmen ( baya zaman aliyor yani) boyama rengini seçmek filan uzun sürüyor.
Kafamda ekstra bir tuşu olan mausa bu işi yaptırmak var fakat her excel sayfasi için bunu kolaylıkla yapabilir miyim? Ben sadece alanı seçip maus makro tuşuna basıcam sonrasında hücreler boyanacak.
Böyle birşey mümkün müdür? Dilersem aynı excelde farkli bir renk tercihide yapabilmeliyim.
 
Basit Excel Soruları dışında kişisel olarak yapmak istediğiniz işlemler için ekleyeceğiniz bir örnek dosya, alacağınız olası yardımın süresini kısaltacaktır.

Şimdi sorunuza cevap veriyorum.
Evet mümkündür.
Çünkü Excel'de "mümkün değildir" demek "mümkündür" demeye göre daha zordur.
Lakin "mümkündür" cevabımı devam ettirmek için dosyanızı görmemiz gerekir.
 
Basit Excel Soruları dışında kişisel olarak yapmak istediğiniz işlemler için ekleyeceğiniz bir örnek dosya, alacağınız olası yardımın süresini kısaltacaktır.

Şimdi sorunuza cevap veriyorum.
Evet mümkündür.
Çünkü Excel'de "mümkün değildir" demek "mümkündür" demeye göre daha zordur.
Lakin "mümkündür" cevabımı devam ettirmek için dosyanızı görmemiz gerekir.
İlginiz için teşekkür ediyorum dosyamız ektedir.
 

Ekli dosyalar

@orhanyildi

Sanıyorum işlemi Zirve (2) isimli sayfada kullanacaksınız. (aynı kod diğer sayfa için olmaz)
Alt taraftan Zirve (2) sayfasının adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
açılacak VBA ekranında sağdaki boş alana aşağıdaki kodu yapıştırın.

-- Bir yevmiye maddesine ait satırların en fazla 500 satır olabileceğini varsaydım.
-- İki madde no satırı arasında, A sütununda bir hücreye fareyle ilk çift tıkladığınızda, bu maddeye ait satırlar sarıya boyanır.
-- daha sonra, yine A sütununda sarı boyalı bir hücreye çift tıklarsanız da o maddeye ait satırlar boyasız hale gelir.
-- Madde no satırlarında veya bu satırlara yönelik bir işlem yapılmaz.

Yani A sütununda bir hücreye çift tıkla boyama, sonraki bir çift tıkla boyamanın silinmesi gerçekleştirilir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
 
@orhanyildi

Sanıyorum işlemi Zirve (2) isimli sayfada kullanacaksınız. (aynı kod diğer sayfa için olmaz)
Alt taraftan Zirve (2) sayfasının adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
açılacak VBA ekranında sağdaki boş alana aşağıdaki kodu yapıştırın.

-- Bir yevmiye maddesine ait satırların en fazla 500 satır olabileceğini varsaydım.
-- İki madde no satırı arasında, A sütununda bir hücreye fareyle ilk çift tıkladığınızda, bu maddeye ait satırlar sarıya boyanır.
-- daha sonra, yine A sütununda sarı boyalı bir hücreye çift tıklarsanız da o maddeye ait satırlar boyasız hale gelir.
-- Madde no satırlarında veya bu satırlara yönelik bir işlem yapılmaz.

Yani A sütununda bir hücreye çift tıkla boyama, sonraki bir çift tıkla boyamanın silinmesi gerçekleştirilir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
Verdiğiniz kod yukarıda eklediğim excel kitabında dediğiniz sayfada çalışıyor fakat yeni ekleyeceğim kitapta çalışmıyor. Sayfa adını " Zirve (2) " yaptığım halde. Acaba ben mi yanlış yaptım ?
Yukarıda verdiğiniz kodu genel olarak bütün excel sayfaları için çalıştırabilir miyiz? (sayfa adını değiştirmek koşulu ile )
 

Ekli dosyalar

Aynı kodu yeni eklediğiniz sayfanın VB ekranına da yapıştırmanız gerekir.

1637649462304.webp


Alt + F11 ile Visual Basic penceresini açın ve üstte ok ile işaretlediğim alanda yeni sayfanın ismine çift tıklayın.
Ekranın sağ tarafındaki kod alanına, @Ömer BARAN hocamın verdiği kodu yapıştırın.

Eğer sayfalarda tetikleme denen husus ile işlem yapacaksanız, her seferinde bu işlemi tekrarlamanız gerekir.
 
Moderatörün son düzenlenenleri:
Aynı kodu yeni eklediğiniz sayfanın VB ekranına da yapıştırmanız gerekir.

1637649462304.webp

Alt + F11 ile Visual Basic penceresini açın ve üstte ok ile işaretlediğim alanda yeni sayfanın ismine çift tıklayın.
Ekranın sağ tarafındaki kod alanına, @Ömer BARAN hocamın verdiği kodu yapıştırın.

Eğer sayfalarda tetikleme denen husus ile işlem yapacaksanız, her seferinde bu işlemi tekrarlamanız gerekir.

Kodu normalde alt kısımdan sayfa adına sağ tıklayıp "Kod Görüntüle" deyip ekliyordum. Tabi excel kitabını makro içerebilen olarak kaydediyordum. İlk gönderdiğim "Çalışma" isimli kitapta " Zirve (2) " isimli sayfaya kodları yapıştırınca tetikleme çok seri, sorumsuz çalışıyor fakat son eklediğim "10 ay yevmiye" kitabında kodun çalışmasını istediğim sayfa adını ilk kitaptan kopyalayarak değiştirip kodu sizin tarifinizdeki gibi yapıştırmama rağmen çalıştıramadım. Bir şeyi mi eksik kopyaladım diye defalarca denedim yinede kod çalışmadı.
Kodun çalışmasını için
1-Makro içerebilen çalışma kitabına kayıt edilmesi
2-Çalışma sayfasının adının " Zirve (2) " olması yeterli olmuyor kodun içerisinde " Zirve (2) " kelimesini göremedim sanki biraz teferruatlı bir kod olmuş. Bende beceremedim.
 
Moderatörün son düzenlenenleri:
Hatayı bulmak için kodların ilk satırının sol kısmındaki beyaz boşluğa fare ile tıklayın.
Satır kırmızı renk olup, boşluk olan yerde yuvarlak bir kırmızı simge gelecektir.
Daha sonra kodlar çalışınca o alan sarı olacak ve F8 tuşu ile adım adım satırları ilerletin.

Hangi satırda hata çıkıyorsa, onun üzerinden hatanın kaynağını tespit edebilirsiniz.

Hatayı çözdükten sonra yine ilgili yere tıklatıp eski haline getirirsiniz.
 
Hatayı bulmak için kodların ilk satırının sol kısmındaki beyaz boşluğa fare ile tıklayın.
Satır kırmızı renk olup, boşluk olan yerde yuvarlak bir kırmızı simge gelecektir.
Daha sonra kodlar çalışınca o alan sarı olacak ve F8 tuşu ile adım adım satırları ilerletin.

Hangi satırda hata çıkıyorsa, onun üzerinden hatanın kaynağını tespit edebilirsiniz.

Hatayı çözdükten sonra yine ilgili yere tıklatıp eski haline getirirsiniz.
Hatayı bulmak için kırmızı balonları aktif ettim sonra ilgili sayfada makro çalıştırmak için çift tıkladım. Kod sayfasında 1. satır sarı oldu. F8 tuşu ile ilerledim sarı boyalı olmayan yerler mi hatalı oluyor 2. satırdaki "Exit Sub" kısmı boyalı olmayarak alt satıra indi sırama görüntüleri ektedir.
 

Ekli dosyalar

  • resim_2021-11-23_121002.webp
    resim_2021-11-23_121002.webp
    48.4 KB · Görüntüleme: 4
Belge yapısı farklı olunca çözüm de doğal olarak farklı olmak durumunda.
Önceki halinde A sütunundaki Madde No ibaresinden hareket edilmişti.
Bu kez ise B sütunundaki ---- TARİH ---- ibaresi üzerinden hareket ediliyor.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
 
Teşekkür ederim oldu. Aynen dediginiz gibi, niçin ilk kitapta A sütünu baz aldığınızı tahmin edecek olursam; nereye kadar boyama komutu için.
Genişlik olarak A sutunundan G sütununa yükseklik olarak A sütundaki yeni madde numarasına kadar diye hareket ettiriyorsunuz. Bunun mantığını anlayip daha burada yer almayan çalışma sayfalarıma uygulamam gerekiyor.
 
Sadece tıkladığım satırı boyama kabaca iş görür gibi geliyor. Haksız mıyım?

Tercihinize bir şey diyemem.

Kabasını/incesini de bilemem!

Üyemiz, kendisi çözemediği veya merak edip öğrenmek istediği hususlarda soru sorduğunda
konuyu cevapsız bırakmamaya, sorunu/ihtiyacı/isteği doğrultusunda çözüm önerisinde bulunmaya çalışıyoruz.

İsteğiniz;
-- 1'inci satır hariç (muhtemelen başlık satırı) tutularak,
-- G sütununa göre alttan yukarı doğru ilk dolu satırdan yukarısında geçerli olmak üzere,
-- A sütunundaki bir hücreye çift tıklamayla, o satırda A-G sütun aralığı hücrelerini boyamak ise
kodu şöyle kullanmanız yeterlidir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(6 satır)
 
Tercihinize bir şey diyemem.

Kabasını/incesini de bilemem!

Üyemiz, kendisi çözemediği veya merak edip öğrenmek istediği hususlarda soru sorduğunda
konuyu cevapsız bırakmamaya, sorunu/ihtiyacı/isteği doğrultusunda çözüm önerisinde bulunmaya çalışıyoruz.

İsteğiniz;
-- 1'inci satır hariç (muhtemelen başlık satırı) tutularak,
-- G sütununa göre alttan yukarı doğru ilk dolu satırdan yukarısında geçerli olmak üzere,
-- A sütunundaki bir hücreye çift tıklamayla, o satırda A-G sütun aralığı hücrelerini boyamak ise
kodu şöyle kullanmanız yeterlidir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(6 satır)
Tam istedigim gibi olmuş sayfa adı v.s. takılı kalmadan bütün kitaplarda çalışıyor.
Boyama aralığını bazen daha uzun seçiyorum kod içeriğinden G harfini Z yaptım oldu. Sadece bir soru işareti kaldı. İlla A sütununu tıklamam gerekmesi. Burada genelde satır sonlarındaki sütunda (bu bazen G bazen AC...vs oluyor) yer alan rakamları tıklamam daha işlevsel olacak. Tıklama sütununun harfini kod içeriğinden nasıl değiştirebilirim?
 
@orhanyildi

Son dolu satırın, hangi sütuna göre tespit edileceği durumu farklı.
Diğer belgede bunun için sütun no olarak 7 kullanılmış (G sütunu).
O kısmın değiştirilmesi yeterlidir. (Yeşil renklendirdiğim 1 sayısı)

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

Bir de A sütunundan itibaren hangi sütuna kadarki alanın boyanacağı meselesi var.
Mevcut kod G sütununa kadar boyama yapıyor.
onu da ilgili son boyama sütununun adıyla değiştirebilirsiniz (alttaki iki adet If ..... satırında).

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
@orhanyildi

Son dolu satırın, hangi sütuna göre tespit edileceği durumu farklı.
Diğer belgede bunun için sütun no olarak 7 kullanılmış (G sütunu).
O kısmın değiştirilmesi yeterlidir. (Yeşil renklendirdiğim 1 sayısı)

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

Bir de A sütunundan itibaren hangi sütuna kadarki alanın boyanacağı meselesi var.
Mevcut kod G sütununa kadar boyama yapıyor.
onu da ilgili son boyama sütununun adıyla değiştirebilirsiniz (alttaki iki adet If ..... satırında).

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
G Sütunu işini çözmüştüm sayenizde teyit ettim.
Tetik tuşunu kullanacağım hücre için kodunuzdaki 2 sütun ".......Cells(Rows.Count, 4)......" kısmını değiştirince olmadı da
2. Satırdaki "......End(3).Row Or Target.Column <> 4 Then Exit Sub..... kısmını değiştirince işe yaradı.
Son olarak bazen çalıştırıyorum bazen çalıştıramıyorum İlgili kodun yazılacağı excel kitabı, sayfası ile ilgili özel bir ön koşul var mıdır?
Sayfa Adı "Sayfa 2 " olacak gibi sadece makro içerebilen bir kitapta istediğim sayfada çalıştırabilmem gerekiyor değil mi?
 
Bilgisayarde değilim.

-- Verilen kod, sayfa olaylarından Worksheet_BeforeDoubleClick kodu olduğundan, alt taraftan işlem yapılacak sayfanın adına sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde karşınıza gelecek ekranda sağ tarafa yapıştırılmalıdır.

-- Hangi sütuna çift tıklayınca işlem tetiklenecek?
.......Target.Column <> 1 Then Exit Sub
Cevap: sütun no 1 olan A sütunu.

-- Son dolu satırın satır numarası, hangi sütuna bakarak tespit edilecek?
.......Cells(Rows.Count, 7).End(3).Row.....
Yani G sütununa göre bakılacak.
Diyelim bu son dolu G sütunu hücresinin satır no: 156.

-- Çift tıklama yapıldığında boyama işlemi yapılmayacak satırlar hangileri?
1) başlık satırı,
2) son dolu satırdan sonraki satırlar.
If Target.Row = 1 Or Target.Row > Cells(Rows.Count, 7).End(3).Row ....... Then Exit Sub

Yukarıdakelirin tümü kodun sadece 1'inci satırında belirtilenler. Sonuç olarak, bu satırdaki koşullara göre;
-- 1 inci satırda çift tıklamayla kod tetiklenmez,
-- A sütunu dışındaki çift tıklamalar kodu tetiklemez,
-- Son dolu satırdan sonraki çift tıklamalar kodu tetiklemez.

Peki geriye kalan, kodu tetikleyecek alan neresi?
Hangi hücrelere çift tıklandığında işlem gerçekleşir?
Cevap: A2:A156 .

Kodun sonraki iki satırından birinde boyama, diğerinde boyayı kaldırma işlemi var.
Peki çift tıklanan A sütunu hücresinin satırında hangi hücreler boyanacak?
.....Range("A" & Target.Row & ":G" & Target.Row).Interior.Color = vbYellow
Yani A-G sütunu hücreleri.


VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(6 satır)
 
Üst