Copiar valores resultado fórmula en otra hoja

Hola,
Envío eata petición para que me solventéis si alguien puede este problemilla que cuento a continuación.
El problemilla es con un Excel. El problema a salvar es hacer funcionar las macros asignadas a unos botones, pues bien esta macro lo que hace es copiar el resultado de una fórmula de un rango de una columna de una hoja en otra hoja copiando solo sus valores.
Sub Botón18_Haga_clic_en()
Sheets("DESAYUNO R.ALDA").Activate
Range("P2:P155").Select
Selection.Copy
Sheets("TRANSFORMACION PEDIDO").Activate
Range("G26").Select
Selection.PasteSpecial Paste:=xlValues
End Sub
Pero el problema es que copia también los resultados #N/A de la fórmula. Este error es debido a que:
De manera predeterminada, las funciones que buscan información en las tablas deberán ordenarse en orden ascendente. Sin embargo, las funciones de la hoja de cálculo BUSCARV y BUSCAR contienen un argumento (argumento: valores que utiliza una función para llevar a cabo operaciones o cálculos. El tipo de argumento que utiliza una función es específico de esa función. Los argumentos más comunes que se utilizan en las funciones son números, texto, referencias de celda y nombres.) De rango_buscado que da instrucciones a la función para buscar una coincidencia exacta incluso si la tabla no está ordenada. Para buscar una coincidencia exacta, defina el argumento de rango_buscado como FALSO.
La función de la hoja de cálculo COINCIDIR contiene un argumento de tipo_de_coincidencia que especifica el orden en que la lista debe ordenarse para buscar una coincidencia. Si la función no puede encontrar ninguna coincidencia, intente cambiar el argumento de tipo_de_coincidencia. Para buscar una coincidencia exacta, establezca el argumento tipo_de_coincidencia en 0.
Con lo que después no funciona correctamente la macro que esta asignada a otro botón CREAR PEDIDOS que lee los resultados dejados por la otra macro
Sub GENERAR_PEDIDOS_DE_HASTA()
'
' GENERAR_PEDIDOS DE_HASTA Macro
'
'
Application.ScreenUpdating = False
Sheets("TRANSFORMACION PEDIDO").Select
If Range("E9").Value = 0 Then
MsgBox ("Se debe especificar Hasta Centro >>> ")
Range("E9").Select
Exit Sub
Else
Range("E8").Value = Range("E8").Value - 1
Do Until Range("E8").Value = Range("E9").Value
If Range("E8").Value > Range("AV26").Value Then
Exit Sub
Else
Range("B9").Select
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.Run "REGISTRAR_PEDIDO"
End If
Loop
End If
MsgBox ("Se han generado los pedidos de los centros solicitados")
Range("E8").Select
Application.ScreenUpdating = True
End Sub
Un saludo y gracias de antemano

1 Respuesta

Respuesta
1
Acá tienes una forma para evitar los errores #N/A de las funciones usando la función eserror. Por ejemplo
SI(ESERROR(BUSCARV(B1,BD!$B$1:$C$3,2,FALSO)),"Valor NO encontrado dentro de la Base de Datos",BUSCARV(B1,BD!$B$1:$C$3,2))
En lugar de colocar valor no encontrado puedes sustiruirlo por " " espacio en blanco.
Acá tienes la explicación
http://www.fiscalito.com/evitar-na.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas