Hola, les cuento que pasa.
Tengo dos Columnas cada una con 8331 formulas en total, la cosa es que en todas las formulas en vez de mostrar el resultado me sale el error de: "#¿NOMBRE?", ya me he asegurado de que las formulas y los datos que usa estén bien, ya también me asegure que el calculo este en automático y de que en las celdas se muestre el resultado y no la formula, he tratado de en varias ocasiones usar el botón de F9 para actualizar los datos y no me funciona, lo único que hasta el momento me sirve es entrar a la formula ta sea con doble click o F2 y luego presionar el Intro pero son muchos datos como para hacer eso uno por uno, mi pregunta es ¿Como puedo arreglar ese problema de una sola vez?, ya sea con una macro o con un comando que me las ajuste todas al mismo tiempo, lo que sea pero necesito ayuda.
Debo decir que la formula que se usa en las celda es la de =SUBTOTALES(9) Y si necesitan alguna informacion adicional con gusto se las dare
Comprueba que las celdas no tengan formato Texto
¿esas fórmulas se han introducido a mano o mediante una macro?
Si es mediante macro comprueba que se estén introduciendo en el idioma correcto.
Imagino que es toda la columna será la misma fórmula que se repite, así que igual es más rápido editar la fórmula en la fila 1 y extender la fórmula hasta el final
para extender la fórmula puedes hacer doble clic en la esquina inferior derecha de la celda seleccionada, cuando el cursor adopte la forma de una cruz negra. Esto extiende la fórmula en todo el rango donde haya datos en la columna inmediatamente a la izquierda
------
Ya sé Excel, pero necesito más.
Las formulas fueron introducidas manualmente, pero los rangos se habian desorganizado y las reorganice usando esta macro
Sub FixSubTotals()
Dim i, j, lastRow As Long
lastRow = Range("A" & Rows.Count).End(xlUp).Row 'Cuenta cuantas filas hay en la tabla
j = 0 'inicia el contador desde cero
For i = lastRow To 1 Step -1 'pasa por cada fila desde la ultima del libro hacia la primera fila
If Range("A" & i).Value <> 1 Then 'evalúa si el valor en la columna A es diferente de 1
j = j + 1 'Si es diferente va contando cuantas filas hay entre subtotales.
Else
Worksheets("APU").Range("P" & i).FormulaR1C1 = "=SUBTOTALES(9,R[1]C[-2]:R[" & j & "]C[-1])" 'Cuando encuentra un 1 asigna la formula subtotal con los rangos que contienen los valores a sumar
j = 0 'Reinicia el contador para cada rango.
End If
Next i 'Pasa a la siguiente fila
End Sub
Como me aseguro de que lo colocara en el idoma correcto?
Cuando establecse la fórmula con la macro lo haces con .FormulaR1C1 y esto requiere que introduzcas la fórmula en inglés
Si quiere introducir la fórmula en el idioma local de la instalación de tu Excel, que entiendo que es el español, entonces tienes qeu utilizar
.FormulaR1C1Local = ...
si lo que quieres es introducir la fórmula con el estilo A1 para referirte a las celdas, entonces tienes
.Formula (en inglés)
.FormulaLocal (en el idioma local, en este caso en español)
------
Ya sé Excel, pero necesito más.