Q:AG aralığı boş ise AH:AU aralığındaki hücreler temizlensin

Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Merhabalar Değerli Dostlar,
Hazırlamaya çalıştığım puantaj tablosunda 2. satırdan 70. satıra kadar sırayla
Q:AG aralığı tamamen boş ise AH:AU aralığındaki hücreler temizlensin tek bir hücrede veri var ise işlem yapılmadan bir sonraki satıra geçilsin istiyorum. Yapabilen arkadaşlardan yardım bekliyorum.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.

Kod:
Sub Sil()
Dim kontrol As Boolean
Set s1 = Sheets("PUANTAJ")
For i = 2 To s1.[a65536].End(3).Row
kontrol = False
For Each c In Range(Cells(i, "q"), Cells(i, "ag"))
If c.Value <> "" Then kontrol = True
Next
If kontrol = False Then Range(Cells(i, "ah"), Cells(i, "au")).ClearContents
Next i
Set s1 = Nothing
MsgBox "Bitti"
End Sub
Not: A kolonundaki son ki&#351;iye kadar i&#351;lem yapmaktad&#305;r.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
&#214;ncelikle cevap verdi&#287;iniz i&#231;in &#231;ok te&#351;ekk&#252;r ederim Sn.Ripek.
Ancak &#351;&#246;yle bir sorun oldu. A&#351;a&#287;&#305;da yaz&#305;l&#305; olan kodlarla AH2:AU68 alan&#305;n&#305; yaz&#305;p dolu hala getiriyordum. &#350;imdi sizin yazd&#305;&#287;&#305;n&#305;zkodlarla silince art&#305;k kal&#305;yor.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim hucre As Range
On Error GoTo hata
If Intersect(Target, [AV2]) Is Nothing Then Exit Sub
For Each hucre In [AH2:AU68]
If hucre = "" Then
hucre = Target.Value
End If
Next
hata:
End Sub

Bu kodunda End(3).Row mant&#305;&#287;&#305;na uyarlanmas&#305; laz&#305;m. Ben yapamad&#305;m.
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim hucre As Range
On Error GoTo hata
If Intersect(Target, [AV2]) Is Nothing Then Exit Sub
'***************************************************
Dim kontrol As Boolean
Set s1 = Sheets("PUANTAJ")
For i = 2 To s1.[a65536].End(3).Row
kontrol = False
For Each c In Range(Cells(i, "q"), Cells(i, "ag"))
If c.Value <> "" Then kontrol = True
Next
If kontrol = False Then Range(Cells(i, "ah"), Cells(i, "au")).ClearContents
Next i
Set s1 = Nothing
'*****************************************************
For Each hucre In [AH2:AU68]
    If hucre = "" Then
        hucre = Target.Value
    End If
Next
hata:
End Sub
olarak deneyin.

Buradaki kodlar &#246;nceki mesaj&#305;mda yazd&#305;&#287;&#305;m gibi A kolunundaki son dolu h&#252;cre say&#305;s&#305; kadar i&#351;lem yap&#305;yor.
AH55:AU68 alan&#305;n&#305;nda yaka numaralar&#305;n&#305; girerseniz t&#252;m&#252; dikkate al&#305;nacakt&#305;r.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sn.ripek,
Kodu denedim, A sütunundaki son satırdan sonra 68 satıra kadar yine yazıyor.
Yani son yaka numarasında yazma işlemini durdurmuyor.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim hucre As Range
On Error GoTo hata
If Intersect(Target, [AV2]) Is Nothing Then Exit Sub
'***************************************************
Dim kontrol As Boolean
Set s1 = Sheets("PUANTAJ")
For i = 2 To s1.[a65536].End(3).Row
kontrol = False
For Each c In Range(Cells(i, "q"), Cells(i, "ag"))
If c.Value <> "" Then kontrol = True
Next
If kontrol = False Then
Range(Cells(i, "ah"), Cells(i, "au")).ClearContents
Range(Cells(i, "ah"), Cells(i, "au")).Value = Target.Value
End If
Next i
Set s1 = Nothing
'*****************************************************
hata:
End Sub
Kodlar&#305;n&#305; denermisiniz.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sn.ripek sanıyorum eksik bilgi aktardım. Özet olarak şöyle olmalı. AH:AU aralığı Yaka numaralarının en son satırına kadar AV2 hücresine yazılan değeri boş olan hürelere yazdırmalı. (Bu kısma hafta tatilleri önceden işleniyor.) Dolu olan hücrelere dokunulmamalı.
Sn.Ripek bu tablo hazırlamış olduğum programa eklenecek. Hazırladığım bölüm hafta tatllrini ve diğer bilgileri giriyor.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sn.ripek yada şöylede yapabiliriz. Sizin önce yazdığınız kodda Q:AG aralıığı boşsa AH:AU aralığı silinsin dediğimiz kısma yaka numarasının olduğu hücre ve Q:AG aralığı değerlerinin 2 sinden birisi boş olursa AH:AU aralığı silinsin dersek de olur.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Sn.ripek sizi yordum hakk&#305;n&#305;z&#305; helal edin. Te&#351;ekk&#252;r ederim emek &#231;ektiniz.
Kodu &#351;u &#351;ekil kullan&#305;rsam benim i&#351;imi g&#246;r&#252;r.

Sub Sil()
Dim kontrol As Boolean
Set s1 = Sheets("PUANTAJ")
For i = 2 To 100
kontrol = False
For Each c In Range(Cells(i, "q"), Cells(i, "ag"))
If c.Value <> "" Then kontrol = True
Next
If kontrol = False Then Range(Cells(i, "ah"), Cells(i, "au")).ClearContents
Next i
Set s1 = Nothing
MsgBox "Bitti"
End Sub
 
Üst