Sumar según formato moneda de celdas

Señores expertos, quisiera que me ayuden a sumas, tengo en excel columnas de datos que tienes el formato moneda de soles y dolares, y quiero sumar todas las que tienes formato moneda de dolares más no las de soles. Como lo hago
   |  A    |  B  |  C    |  D  |
1| S/.12| $ 5|  S/.1| $ 6|
2|S/.12| $ 5|  S/.1| $ 6|
3|S/.12| $ 5|  S/.1| $ 6|
4|S/.12| $ 5|  S/.1| $ 6|
un usuario cerro sin tener la respuesta,
la respuesta es
Sub sumamonedas()
Set Rango = Selection
columnas1 = Selection.Column  'determino inicio de rango seleccionado
filas1 = Selection.Row
Formatos = 1
For Each cell In Rango         'determino fin de rango seleccionado
columna = cell.Column
fila = cell.Row
Next
columnafin = columna + 1          'Determino donde poner los totales, es decir despues del rango
Cells(1, columnafin).Value = "Total" 'escribo encabezados de totales
Cells(1, columnafin).Value = "Total2"
For j = filas1 To fila                  'limpio totales anteriores
For i = columnafin To columnafin + 1
Cells(j, i).Value = ""
Next i
Next j
For j = filas1 To fila       'realizo comparaciones de formato
    For i = columnas1 To columna
        If Cells(j, i).NumberFormat = "_ [$S/.-280A] * #,##0.00_ ;_ [$S/.-280A] * -#,##0.00_ ;_ [$S/.-280A] * ""-""??_ ;_ @_ " Then
        Cells(j, columnafin) = Cells(j, columnafin) + Cells(j, i)
        End If
        If Cells(j, i).NumberFormat = "_-[$$-340A] * #,##0.00_-;-[$$-340A] * #,##0.00_-;_-[$$-340A] * ""-""??_-;_-@_-" Then
        Cells(j, columnafin + 1) = Cells(j, columnafin + 1) + Cells(j, i)
        End If
    Next i      'cambio de columna
                                'realizo suma en columna correspondiente
    Cells(j, columnafin).NumberFormat = _
            "_ [$S/.-280A] * #,##0.00_ ;_ [$S/.-280A] * -#,##0.00_ ;_ [$S/.-280A] * ""-""??_ ;_ @_ "
    Cells(j, columnafin + 1).NumberFormat = _
            "_-[$$-340A] * #,##0.00_-;-[$$-340A] * #,##0.00_-;_-[$$-340A] * ""-""??_-;_-@_-"
Next j 'cambio de fila
End Sub
Respuesta
1
Un ejemplo:
Sub XXX()
Dim rango As Range
For Each rango In ActiveSheet.Range("A1:B5")
Dim dolares As Currency, soles As Currency
If rango.NumberFormat = "$ #,##0.00" Then
soles = soles + rango
End If
If rango.NumberFormat = "[$$-409]#,##0.00" Then
dolares = dolares + rango
End If
Next rango
MsgBox "Tienes " & FormatCurrency(soles, 2) & " soles"
MsgBox "Tienes  " & Format(dolares, "$ #,##0.00") & " dolares"
End Sub
Abraham
Esta correscto pero la idea es que el resultado se registre. Y que lo haga en una matriz.
Lo que yo anote funciona (excepto por el formato de dolar que no lo encontraba). Y era para que el usuario que me pregunto lo mirara pues me respondió una aclaración cerrando la pregunta y no me podía contactar con el. Gracias de todas maneras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas