Soru Countif yardımı lütfen

Katılım
30 Kasım 2019
Mesajlar
24
Excel Vers. ve Dili
2016 - Türkçe
merhaba.
çalışmamda AO5 ile BS5 arasındaki 31 hücredeki içeriği "X" olanları BT5 hücresinde topluyorum. ama bunların 20 yi geçmemesini istiyorum. makro konusunda da pek bi bilgim yok ne yazık ki. forumu inceleyip anlatmak istediğimi şu kodla gerçekleştirdim
Sub yirmiden_fazları_sil()
Sheets("mly_ilave_ek").Activate
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With

If Cells(5, 72) > 20 Then
Cells(5, 71) = " "
End If

With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 70) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 69) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 68) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 67) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 66) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 65) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With



If Cells(5, 72) > 20 Then
Cells(5, 64) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 63) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 62) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
If Cells(5, 72) > 20 Then
Cells(5, 61) = " "
End If
With Range("BT5:BT505")
.Formula = "=COUNTIF(AO5:BS5,""X"")"
.Value = .Value 'PRODUCT
End With
End Sub
bunu daha basit bir kodla yapmak mümkün müdür? çünkü bu sadece 5. satırda çalışıyor ama benim 5 ile 505 arasındaki satırlara uygulamam gerekiyor aynı şeyi.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Dosyanızı yedekleyerek; aşağıdaki kodları denermisiniz?
Kod:
Sub yirmiden_fazları_sil()
Dim a As Long, b As Long, s As Long, c As Long
Sheets("mly_ilave_ek").Activate
For a = 5 To 505
s = WorksheetFunction.CountIf(Range("AO" & a & ":BS" & a), "X")
If s > 20 Then
Range("BT" & a) = 20
c = 0
For b = 71 To 41 Step -1
If Cells(a, b) = "X" Then
Cells(a, b) = ""
c = c + 1
End If
If s - c = 20 Then Exit For
Next
Else
Range("BT" & a) = s
End If
Next
End Sub
 
Katılım
30 Kasım 2019
Mesajlar
24
Excel Vers. ve Dili
2016 - Türkçe
denedim ve tam istediğim gibi oldu :) çok teşekkür ediyorum . öyle işime yarayacak ki :)
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
denedim ve tam istediğim gibi oldu :) çok teşekkür ediyorum . öyle işime yarayacak ki :)
Rica ederim, güle güle kullanın.
Eğerki hücrelerde "X" "x" gibi küçük yazılma ihtimali varsa
kodlardaki şu satırı
Kod:
If Cells(a, b) = "X" Then
şöyle değiştirin.
Kod:
If UCase(Cells(a, b)) = "X" Then
 
Katılım
30 Kasım 2019
Mesajlar
24
Excel Vers. ve Dili
2016 - Türkçe
teşekkür ediyorum. "X" değerlerini userform üzerindeki comboboxlar ile kaydediyorum o yüzden standart oluyor. ilk hali işimi gördü :) teşekkür ediyorum tekrar yardımınız için. 4 gündür burada takılıp kalmıştım
 
Üst