Ciao
Il target da trovare è alla riga:
TargetVal = Selection.Cells(2).Value della Sub startSearch.
Pertanto (se ho capito) basterebbe de-in/crementare tale valore della % voluta per ottenere il risultato voluto.
Come sicuramente avrai capito, il programma originale prevede la stampa delle "posizioni" degli addendi valutati e non la stampa dei numeri che compongono il totale cercato.
Con qualche modifica ho provveduto a non far stampare tale elenco ma solo i risultati.
Per farlo, alla fine della stessa sub ho inserito un loop sull'array Rslt() che è quello che contiene "gli indici" degli addendi.
Soluzioni trovate:
Ogni volta che nella Function RealEqual(A, B...ecc), RealEqual risulta True, ha trovato una soluzione.
RealEqual = Abs(A - B) <= Epsilon
Qui si potrebbe intervenire per metterlo a True qualora compreso in un range +/- %
Ogni singola soluzione viene riportata nel suddetto array Rlst()
Se nella Sub recursiveMatch inserisci uno stop dopo:
ReDim Preserve Rslt(UBound(Rslt) + 1)
in debug vedrai di volta in volta gli indici che compongono il risultato cercato all'interno del suddetto array.
saluti
Domenico
Win 10 - Excel 2016