Determinación del símbolo de moneda de un formato (Microsoft Excel)
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.