Disculpen como podría pasar en macro dos sumar.si, yo las agrego con un "+" o un menos pero es en una fórmula no en macros

Me podrían ayudar a entender como podría hacer un sumar. Si,

=SUMAR.SI(Hoja2!$A:$A,Hoja3!$A2&"-"&Hoja3!C$1,Hoja2!$K:$K)-SUMAR.SI(Hoja2!$A:$A,Hoja3!$A2&"-"&Hoja3!C$1,Hoja2!$J:$J) pero con un macro y de otra hoja sacar la informacion con dos condiciones y en dos filas diferentes de criterio.

2 respuestas

Respuesta
2

Coloca tu fórmula en la celda donde la necesites.

Encendé la grabadora de macros, colocá el cursor en la barra de fórmula y dale Enter.

Detené la grabadora y en un módulo del Editor encontrarás las instrucciones.

Estas están en formato R1C1, es decir que te indicará la fila y columna de tus argumentos, en relación a la ubicación de tu celda.

No será igual a mi instrucción. Mi celda es E2 por lo tanto, en el argumento:

Hoja2!$A:$A    se devuelve C1 por tratarse de una referencia absoluta a la columna A con $

Hoja3!C$1   se devuelve R1 por tratarse de referencia absoluta a la fila $1 y C[-2] para indicar 2 columnas a la izquierda de E.

Hay otros modos de redactar una fórmula con macros. Las dejé explicadas en el video N° 15 de mi canal. En el video N° 62 tenés las explicaciones de cómo utilizar la grabadora.

Respuesta
1

Te invito a SUSCRIBIRTE a mi canal de YouTube:

Excel y Macros

Ahí encontrarás más sobre Excel y Macros:

https://www.youtube.com/channel/UCs644-v3ti4SF7zE_bt_YXA 

Comparte los enlaces con alguien que desee conocer sobre Excel y Macros.


En VBA puedes utilizar WorksheetFunction

Sub EjemploSumarSi()
  Dim sumar_si As Long
  '
  'En VBA puedes utilizar WorksheetFunction
  sumar_si = WorksheetFunction.SumIf(Range("Hoja2!$A:$A"), _
             Range("Hoja3!$A2") & "-" & Range("Hoja3!C$1"), Range("Hoja2!$K:$K")) - _
             WorksheetFunction.SumIf(Range("Hoja2!$A:$A"), _
             Range("Hoja3!$A2") & "-" & Range("Hoja3!C$1"), Range("Hoja2!$J:$J"))
  '
  'El resultado lo puedes poner en una celda
  Sheets("Hoja2").Range("D2").Value = sumar_si
End Sub

Sal u dos

¡Gracias! Muchas gracias maestro, dante y como lo haría para varias celdas hacia abajo y hacia la derecha, como si arrastrara con el mouse, me podría ayudar o me podría sugerir algún video de su canal saludos .

Si te interese aprender a programar macros, te recomiendo este vídeo:

https://youtu.be/PupmVvM16-8 


Prueba la siguiente.

Ajusta el nombre y el rango de celdas donde quieres la fórmula. Si quieres que sea dinámico, debes proporcionarme más datos:

- ¿En cuál hoja van los resultados?

- ¿La fila 1 y la columna A son las que se toman como referencia para poner las fórmulas hacia abajo y hacia la derecha?

Sub EjemploSumarSi()
  Dim sumar_si As Long
  '
  'Ajusta el nombre y el rango de celdas donde quieres la fórmula
  With Sheets("Hoja3").Range("D2:G10")
    .Formula = "=SUMIF(Hoja2!$A:$A,Hoja3!$A2&""-""&Hoja3!C$1,Hoja2!$K:$K)-" & _
                "SUMIF(Hoja2!$A:$A,Hoja3!$A2&""-""&Hoja3!C$1,Hoja2!$J:$J)"
    '
    'la siguiente instrucción convierte las fórmulas en valores
    .Value = .Value  'quita esta la línea si quieres las fórmulas
  End With
End Sub

Sal u dos

Muchas ¡Gracias! Sr. Dante por la pronta respuesta, y me inscribo en su página de youtube, para poder aprender aun más, saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas