Jelmer trabaja con una gran cantidad de datos financieros y la información de una hoja de trabajo puede estar en monedas de muchos países. La única forma de distinguirlos es mediante el símbolo de moneda utilizado para formatear la celda. Por ejemplo, una celda puede formatearse para usar el símbolo de moneda «EUR» o «SEK». Jelmer se pregunta si existe una forma, en una fórmula, de determinar el símbolo de moneda utilizado para formatear una celda determinada.

No hay una función de hoja de trabajo intrínseca en Excel que devuelva lo que está buscando, por lo que no es posible hacerlo en una fórmula. Sin embargo, puede crear su propia función definida por el usuario que devolverá la información deseada. Aquí tienes un ejemplo:

Function GetCurrency(rCell As Range) As String     Dim sTemp As String     Dim sKeep As String     Dim sThrowAway As String     Dim J As Integer

Application.Volatile     sKeep = "Not a Numeric Value"

If IsNumeric(rCell) Then         sThrowAway = "0123456789.,()+- ]"

sTemp = rCell.Text         sKeep = ""



For J = 1 To Len(sTemp)

If InStr(sThrowAway, Mid(sTemp, J, 1)) = 0 Then                 sKeep = sKeep & Mid(sTemp, J, 1)

End If         Next J     End If     GetCurrency = sKeep End Function

Para usar la función, usaría lo siguiente, asumiendo que desea el símbolo de moneda para lo que sea que esté en la celda B7:

=GetCurrency(B7)

Esto funciona porque la propiedad .Text de una celda devuelve la versión formateada de lo que esté en la celda. Suponiendo que la celda contiene un valor numérico (la función lo prueba), entonces el texto formateado se asigna a la variable sTemp. Luego, cada carácter de ese texto se compara con lo que esté en la cadena sThrowAway. Si hay una coincidencia, el carácter se ignora; de lo contrario, se agrega a la variable sKeep.

Esto es lo que devuelve la función.

Tenga en cuenta también que si la celda que se está evaluando no contiene un valor numérico, se devuelve un mensaje de error («No es un valor numérico»).

Hay que tener en cuenta con la función: si cambia el formato de una celda de destino, eso no activa la macro. Esto parece una deficiencia de Excel en sí mismo: no activa un nuevo cálculo de la hoja de trabajo cuando cambia un formato, por lo que la macro en sí no se activa.

Sin embargo, se activará la próxima vez que realice un cambio en la hoja de trabajo que requiera un nuevo cálculo.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13787) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.