Asignar formato moneda a celda

Junto con saludar, tengo el siguiente problema:
Necesito asignar formato de moneda a una celda pero el tipo de moneda dependerá del valor que sea indicado en una deterninada celda.
Ejemplo:
Si en la celda A1 escribo USD, el formato de la celda C1 debe ser en dolares.
Si en la celda A1 Escribo EURO, el formato de la celda C1 debe ser en Euros.
Atento a su respuesta,
me despido agradecido.

1 respuesta

Respuesta
2
No se puede hacer con función, debe ser con una macro que se ejecute cada vez que haces un cambio a la hoja. La macro revisa si se realizó el cambio en la columna A, y luego da el formato correspondiente a la celda en C. Esta macro no va en un módulo, va en la hoja correspondiente:
Press:
Alt+F11
Doble clic a la hoja correspondiente en el menú del lado izquierdo, y pegas:
'.
Private Sub Worksheet_Change(ByVal Target As Range)
'
If Target.Column = 1 Then
    If UCase(Target) = "USD" Then
        'DOLARES 1:
        Target.Offset(0, 2).NumberFormat = "[$USD] #,##0.00"
        '
        'DOLARES 2:
        'Target.Offset(0, 2).NumberFormat = "[$$-409]#,##0.00"
    ElseIf UCase(Target) = "EURO" Then
        Target.Offset(0, 2).NumberFormat = "#,##0.00 [$?-1]"
    End If
End If
'
End Sub
Gracias, por la respuesta, y si necesitase que un rango de celdas (C1 hasta C200) tuviese dicho formato solo con llenar la celda a1 como seria la macros.
Atentamente.,
LRA.
'Aplica el formato corespondiente a la Columna C según celda
'de la columna A, y siempre que las siguientes celdas de la
'columna A estén vacias y el valor de la columna C
'sea mayor a cero.
Private Sub Worksheet_Change(ByVal Target As Range)
'
On Error Resume Next
Dim Fila As Double
'
If Target.Column = 1 Then
    Fila = Target.Row
    If UCase(Target) = "USD" Then
        '
        Do While Cells(Fila, 3) > 0
            'DOLARES 1:
            Cells(Fila, 3).NumberFormat = "[$USD] #,##0.00"
            'DOLARES 2:
            'Cells(Fila, 3).NumberFormat = "[$$-409]#,##0.00"
            Fila = Fila + 1
            If Cells(Fila, 1) <> "" Then Exit Do
        Loop
        '
    ElseIf UCase(Target) = "EURO" Then
        '
        Do While Cells(Fila, 3) > 0
            Cells(Fila, 3).NumberFormat = "#,##0.00 [$?-1]"
            Fila = Fila + 1
            If Cells(Fila, 1) <> "" Then Exit Do
        Loop
'
'
    End If
End If
'
End Sub
'"El conocimiento le pertenece al mundo".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas