Existe alguna macro que busque una cantidad dentro de un rango en el cual existen diversas cantidades que integran esta cantidad Ejemplo buscar 831 en un rango en el cual se encuentran 475 y 356 junto con otras cantidades y me arroje estas dos cantidades
Sub Buscar() 'Suponiendo que los datos estan en la Columna A desde la fila 1 'Los datos de salida se ubicaran en la Columna B Dim Fila As Integer Dim Buscar As Integer Dim Buscado As Long Dim Agregar As Long Dim NumDat As Long Range("B:B").ClearContents Buscado = Val(InputBox("Que Valor Busca?", "Valor")) NumDat = WorksheetFunction.Count(Range("A:A")) Agregar = 0 For Fila = 1 To NumDat For Buscar = Fila + 1 To NumDat If Hoja1.Cells(Fila, Range("A1").Column) + Hoja1.Cells(Buscar, Range("A1").Column) = Buscado Then Agregar = Agregar + 1 Hoja1.Cells(Agregar, Range("B1").Column) = Hoja1.Cells(Fila, Range("A1").Column) & " + " & Hoja1.Cells(Buscar, Range("A1").Column) End If Next Buscar Next Fila MsgBox "Se han encontrado " & Agregar & " Parejas", vbOKOnly, "Fin" End Sub
Se podría hacer esto como tipo función y con más parejas ya que tengo demasiadas cantidades.
Si ensayaste la rutina, viste que el te da todas las parejas que sumadas resultan en el número que buscas. No se si se pueda crear como función, pues el largo del rango de salida es variable, y estaría de acuerdo con el número de parejas disponibles. De otra manera para poderlo crear en una sola casilla como función, la salida seria una cadena tipo string que contendría todas las parejas posibles pero creo que no seria de mucha utilidad un dato de este tipo. Entiendo que lo que también quieres hacer es sacar los datos no solo por pareja sino por tríos o cuartetos... dejame decirte que esa parte si es pesada, te explico: Para poder hacer eso primero habría que generar una macro que tomara los N elementos de tu lista y generará las POR combinaciones posibles desde 2 elementos hasta N. Ese es el problema, no conozco un algoritmo recurrente codificado en VBA que haga eso. Luego si se pudieran generar las POR combinaciones se recorrería cada una de ellas y se validaría si en suma da el número buscado, esa seria la parte fácil, pero como te digo lo de generar las combinaciones es lo difícil. Si te puedo ayudar en algo más escribe