Ma se hai un file "grandicello", quella formula inserita in "tante celle" e ricalcolata in continuazione (Application.Volatile, ma non puoi farne a meno altrimenti non si aggiorna quasi mai) rischia di essere pesantuccia.
Questa la usi 1 volta e ti dice in quale indirizzo hai raggiunto la soglia impostata:
- Codice: Seleziona tutto
Function CheckSoglia(ByRef myRan As Range, ByRef myCol As Range, ByVal myThr As Double) As String
Dim myC As Range, tarCol As Long, mySum As Double
tarCol = myCol.Interior.Color
For Each myC In myRan
If myC.Interior.Color = tarCol Then
mySum = mySum + myC.Value
If mySum >= myThr Then Exit For
End If
Next myC
If Not myC Is Nothing Then CheckSoglia = myC.Address(0, 0)
End Function
La puoi usare sul foglio, es
- Codice: Seleziona tutto
=CheckSoglia(B2:B12;F1;3)
Ti restituira' la scritta B5
Oppure la usi direttamente nella macro che usi "per scaricarlo con [..] su altro foglio"; es
- Codice: Seleziona tutto
Supero = CheckSoglia(Sheets("Foglio1").Range("B2:B10000"), Sheets("Foglio1").Range("D2"), 3)
Ti restituira' B5 nella variabile Supero
Ciao