Convertir formula de excel en macro

-

Buena noche

Tengo esta formula en excel

=SUMAR.SI.CONJUNTO(Tabla728[CANTIDAD];Tabla728[SUMINISTRO];N4:N622;Tabla728[FECHA DE ENTRADA];">="&$AN$3;Tabla728[FECHA DE ENTRADA];"<="&$AP$3)

y con la grabadora me queda así

ActiveCell.FormulaR1C1 = _
"=SUMIFS(Tabla728[CANTIDAD],Tabla728[SUMINISTRO],RC[-9]:R[618]C[-9],Tabla728[FECHA DE ENTRADA],"">=""&R3C40,Tabla728[FECHA DE ENTRADA],""<=""&R3C42)"

pero la verdad no la entiendo mucho

quiero utilizar un textbox en un formulario para fecha inicial

Tabla728[FECHA DE ENTRADA],"">=""&R3C40,

y otro para fecha final

Tabla728[FECHA DE ENTRADA],""<=""&R3C42)

necesito que me ayuden a que quede en un código mas entendible

---------------------

Tabla728[CANTIDAD] esto esta en la columna E

Tabla728[SUMINISTRO] esto esta en la columna A

RC[-9]:R[618]C[-9] esto está en la columna N , esto es lo mismo que la columna A pero sin repetidos

Tabla728[FECHA DE ENTRADA] esto esta en la columna B

Lo que hace la formula es que a partir de la columna O me suma por año las cantidades de cada item de la columna N de la columna E

La columna O es el año 2019

La columna Q es el año 2020

La columna S es el año 2021

Y asi sucesivamente hasta el año 2022

1 Respuesta

Respuesta
2

Visita:

Cursos de Excel y Macros - YouTube


Debería quedar así, pero no tengo forma de probarla.

ActiveCell.Formula = "=SUMIFS(Tabla728[CANTIDAD],Tabla728[SUMINISTRO],N4:N622,Tabla728[FECHA DE ENTRADA],"">=""&$AN$3,Tabla728[FECHA DE ENTRADA],""<=""&$AP$3)"

Comparte tu libro en google drive y pega aquí el enlace para ver el archivo y hacer pruebas. En la hoja comenta en dónde quieres la fórmula.

También explica por qué quieres llevar la fórmula a vba.


Recomendación:

Consejos para desarrollar macros . curso de excel, curso de macros, excel, macros - YouTube

https://docs.google.com/spreadsheets/d/1D1nb7srOBgSW3EYzUfK_pyPuv7jI42Uw/edit?usp=share_link&ouid=110685551786251976099&rtpof=true&sd=true 

Visita:

Cursos de Excel y Macros - YouTube


Te envié la solicitud para tener acceso al archivo.

ya esta

No puedo abrir el archivo, por problemas de compatibilidad.

Puedes enviármelo por correo.

[email protected]

Por qué quieres llevar la fórmula a vba.

Debes explicar en cuál columna quieres la fórmula.

Ya pude abrir tu archivo, lo reviso y te ayudo con la macro.

Mientras revisa lo siguiente:

Consejos para desarrollar macros . curso de excel, curso de macros, excel, macros - YouTube

Te paso la macro para cambiar la fórmula por VBA

Sub contarsi()
'Por Dante Amor
  Dim a As Variant, b As Variant, c As Variant
  Dim dic As Object
  Dim i As Long, j As Long, k As Long
  Dim llave As String
  '
  a = Range("A3:E" & Range("A" & Rows.Count).End(3).Row).Value
  b = Range("N3:AI" & Range("N" & Rows.Count).End(3).Row).Value
  ReDim c(1 To UBound(b, 1) - 1, 1 To 17)
  '
  'crear el diccionario
  Set dic = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(a, 1)
    llave = a(i, 1) & "|" & Year(a(i, 2))
    dic(llave) = dic(llave) + a(i, 5)     'acumula la columna 5
  Next
  '
  For i = 2 To UBound(b, 1)               'empieza a leer los suministros
    k = k + 1
    For j = 6 To 17 Step 2                'empieza en el año 2016 columna S
      llave = b(i, 1) & "|" & b(1, j)
      If dic.exists(llave) Then
        c(k, j - 5) = dic(llave)
      End If
    Next
  Next
  '
  Range("S4").Resize(UBound(c, 1), UBound(c, 2)).Value = c
End Sub

Hice ajustes a tu hoja. El año 2016 debe empezar en la columna S, para que sea coherente con los demás años.

Te paso el archivo:

https://docs.google.com/spreadsheets/d/1BEvbBd7rIpUqWECBWS1OQbZ5HssQxu9b/edit?usp=sharing&ouid=103060997651612915482&rtpof=true&sd=true 


Revisa lo siguiente sobre matrices:

https://youtube.com/playlist?list=PLmz9wGL_ItXN2J8xrd2ZQIEww60nHj_Z_ 


Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas