Macro buscar

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
Respuesta
1
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas