Makro Kodu ile Şarta Göre kolonların Zemin Rengini Değiştirme

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba arkadaşlar.

Set sh3 = Sheets("tablo")
For i2 = 4 To 41
If sh3.Cells(2, i2).Value = 6 Or sh3.Cells(2, i2).Value = 7 Then
SonSatir11 = sh3.Cells(sh3.Rows.Count, "Ar").End(xlUp).Row
sh3.Cells(i2 + 1, SonSatir11).BackColor = &H8000000F
End If
Next i2

Yukarıdaki kod ile "tablo" sayfasının 2. satır, D sütunundan itibaren AO sütununa kadar haftanın günleri var. 1,2,3,4,5,6,7,1,2,3,4,5,6,7... diye 6 ve 7 rakamlarının geldiği sütunları 5. satırdan itibaren en son dolu satıra kadar (AR sütunu baz alınacak en son dolu satır olarak) zemin rengini gri yapmak istiyorum.
Run-time error "438": hatası veriyor. Yardımcı olabilirseniz sevinirim.
 

Muzaffer Ali

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

Kod:
sh3.Cells(i2 + 1, SonSatir11).BackColor = &H8000000F
satırını aşağıdaki gibi değiştirin
Kod:
sh3.Cells(SonSatir11, i2 + 1).BackColor = &H8000000F
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba.

Kod:
sh3.Cells(i2 + 1, SonSatir11).BackColor = &H8000000F
satırını aşağıdaki gibi değiştirin
Kod:
sh3.Cells(SonSatir11, i2 + 1).BackColor = &H8000000F
Muzaffer Ali bey teşekkürler ilginiz için ama yine aynı hata uyarısını verdi. AR sütununda en son satıra kadar sayma yaparken AR7 satırından başlayacak.
 
Son düzenleme:

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Muzaffer Ali bey teşekkürler ilginiz için ama yine aynı hata uyarısını verdi. AR sütununda en son satıra kadar sayma yaparken AR7 satırından başlayacak.
Afedersiniz son dolu satıra kadar sayma yaparken, AR7 satırından başlayacak. Bir önceki mesajımda AO7 yazmışım.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sorularınızı örnek dosya ile desteklemeye özen göstermenizi rica ederim.

İlk mesajınıza göre yazdım. Ayrıca ilk mesajınızda 2. ve 5. satır ifadeleri kullanılmış? Ben 5.satıdan başlattım.
Kod:
Set sh3 = Sheets("tablo")
sh3.Range("D5:AO5").Interior.ColorIndex = xlNone
For i2 = 4 To sh3.Cells(5, "AP").End(xlToLeft).Column
If sh3.Cells(5, i2).Value = 6 Or sh3.Cells(5, i2).Value = 7 Then
sh3.Cells(5, i2).Interior.ColorIndex = 16
End If
Next i2
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba,

Sorularınızı örnek dosya ile desteklemeye özen göstermenizi rica ederim.

İlk mesajınıza göre yazdım. Ayrıca ilk mesajınızda 2. ve 5. satır ifadeleri kullanılmış? Ben 5.satıdan başlattım.
Kod:
Set sh3 = Sheets("tablo")
sh3.Range("D5:AO5").Interior.ColorIndex = xlNone
For i2 = 4 To sh3.Cells(5, "AP").End(xlToLeft).Column
If sh3.Cells(5, i2).Value = 6 Or sh3.Cells(5, i2).Value = 7 Then
sh3.Cells(5, i2).Interior.ColorIndex = 16
End If
Next i2
Ömer bey teşekkür ederim kod için. 5. satır baz alınmış 6 ve 7 rakamları aranırken 2. satır baz alınacaktı. Bi de son dolu satıra kadar zemin rengi değişecek.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Deneyiniz.
Kod:
Set sh3 = Sheets("tablo")
son = sh3.Cells(Rows.Count, "A").End(xlUp).Row
sh3.Range("D7:AO" & Rows.Count).Interior.ColorIndex = xlNone
For i2 = 4 To 41
If sh3.Cells(2, i2).Value = 6 Or sh3.Cells(2, i2).Value = 7 Then
sh3.Cells(7, i2).Resize(son - 6, 1).Interior.ColorIndex = 16
End If
Next i2
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Deneyiniz.
Kod:
Set sh3 = Sheets("tablo")
son = sh3.Cells(Rows.Count, "A").End(xlUp).Row
sh3.Range("D7:AO" & Rows.Count).Interior.ColorIndex = xlNone
For i2 = 4 To 41
If sh3.Cells(2, i2).Value = 6 Or sh3.Cells(2, i2).Value = 7 Then
sh3.Cells(7, i2).Resize(son - 6, 1).Interior.ColorIndex = 16
End If
Next i2
Çok teşekkürler Ömer bey çözüldü.
 
Üst