Ik heb excel bestand waarbij ik cellen die aan een bepaalde naam voldoen wil optellen. Hierbij wordt rekening gehouden met het format van de cel (numberformat = @\* mag niet geteld worden) en tevens een kleur van een cel (geel gearceerde cellen tellen niet voor "+1" maar voor "+0,5".
Dit gaat goed met de volgende module:
Echter, de range AK5 -> AK6 loopt door tot en met range AK424.....
Dit houdt in dat ik enorm veel werk heb aan het schrijven van de module, de module enorm traag wordt, maar erger: de module niet meer werkt omdat de procedure te groot wordt
Is het mogelijk om de module in te korten? Bijvoorbeeld door de range ( "AK5" ) tot en met ( "AK424" ) variabel te maken? En dat de code automatisch de volgende range zoekt in kolom AK?
In de bijlage een opzetje, zoals het werkt bij twee regels. Het moeten er echter dus zo'n 400 worden.
Alvast bedankt voor de hulp!
Bekijk bijlage Map1helpmij.xlsm
Dit gaat goed met de volgende module:
Code:
Sub HERBEREKEN_OB()
''''''''''''''
'cellen berekenen
'''''''''''''
Application.ScreenUpdating = False
Dim cell As Range
'1e range
Dim MyCount As Long
Dim MyCount2 As Long
Sheets("blad1").Select
Range("D5:AF173").Select
For Each cell In Selection
If cell.Value = Range("AI5") Then If cell.NumberFormat = "@" Then MyCount = MyCount + 1
Next cell
For Each cell In Selection
If cell.Value = Range("AI5") Then If cell.Interior.Color = 65535 Then MyCount2 = MyCount2 + 1
Next cell
Range("AK5").NumberFormat = "0.0"
Range("AK5").Value = MyCount - MyCount2 + MyCount2 / 2
'2e range
Dim MyCount3 As Long
Dim MyCount4 As Long
Sheets("blad1").Select
Range("D5:AF173").Select
For Each cell In Selection
If cell.Value = Range("AI6") Then If cell.NumberFormat = "@" Then MyCount3 = MyCount3 + 1
Next cell
For Each cell In Selection
If cell.Value = Range("AI6") Then If cell.Interior.Color = 65535 Then MyCount4 = MyCount4 + 1
Next cell
Range("AK6").NumberFormat = "0.0"
Range("AK6").Value = MyCount3 - MyCount4 + MyCount4 / 2
End Sub
Echter, de range AK5 -> AK6 loopt door tot en met range AK424.....
Dit houdt in dat ik enorm veel werk heb aan het schrijven van de module, de module enorm traag wordt, maar erger: de module niet meer werkt omdat de procedure te groot wordt

Is het mogelijk om de module in te korten? Bijvoorbeeld door de range ( "AK5" ) tot en met ( "AK424" ) variabel te maken? En dat de code automatisch de volgende range zoekt in kolom AK?
In de bijlage een opzetje, zoals het werkt bij twee regels. Het moeten er echter dus zo'n 400 worden.
Alvast bedankt voor de hulp!
Bekijk bijlage Map1helpmij.xlsm