DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("J8:J150,H8:H150")) Is Nothing Then Exit Sub
Say = WorksheetFunction.SumIf(Range("J:J"), Cells(Target.Row, "J"), Range("H:H"))
If Say > 10 Then
MsgBox Cells(Target.Row, "J") & " limiti doldu!", vbCritical
Cells(Target.Row, "H") = ""
Cells(Target.Row, "J") = ""
Exit Sub
End If
End Sub
Yaklaşık 136.000 satırlık bir listem var ve ben bu listedeki malzemeleri tek tek saymak istiyorum. Malzeme çeşidi oldukça fazla. Ekte gönderğim örnekte yer alan malzemeleri saymak için formülü bulamadım. yardımcı olabilirmisiniz
Sub ozet()
Dim d
Dim i As Long
Dim j As Integer
Dim k As Integer
Dim s
Dim deg As Variant
Dim a1
Dim a2
Set d = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
i = Cells(Rows.Count, "F").End(3).Row
If i < 2 Then i = 2
Range("F2:G" & i).ClearContents
For i = 2 To Cells(Rows.Count, "B").End(3).Row
s = Split(Cells(i, "B"), ";")
For j = 0 To UBound(s)
deg = UCase(Replace(Replace(Trim(s(j)), "i", "İ"), "ı", "I"))
If Not d.exists(deg) Then
d.Add deg, 1
Else
k = d.Item(deg)
k = k + 1
d.Item(deg) = k
End If
Next j
Next i
a1 = d.keys
a2 = d.items
For i = 0 To d.Count - 1
Cells(i + 2, "F") = a1(i)
Cells(i + 2, "G") = a2(i)
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamam..."
End Sub