Obtener la suma de cada fila en la primera columna vacía.

Deseo me puedan ayudar con lo siguiente:

Tengo varios archivos que me arroja un sistema de inventarios y que están distribuidos de la siguiente manera:

-En la columna “A” vienen los días del mes que pueden ser 28, 30 o 31.

Los títulos vienen en la fila número 1 ( A1 DÍA, A2 ARTÍCULO 1, A3 ARTÍCULO 2, A4 ARTÍCULO 3, etc)

-En las columnas de la “B” en adelante vienen el número de unidades vendidas de cada artículo (cada columna corresponde a un artículo).

- El número de columnas depende de si en ese mes se vendieron esos artículos, es decir si no hubo venta de un artículo en específico en ningún día del mes no aparece su columna, por lo que el número de columnas es variable.

-Si hubo ventas en solo unos días del mes, el sistema sustituye a los demás días con ceros.

- El sistema no arroja totales ni en forma vertical ni horizontal.

Por lo explicado anteriormente que deseo que me ayuden con una macro para obtener la suma de ventas por cada día en la primera columna vacía.

Lo que pasa es que estoy revisando las ventas de varios años y es bastante tedioso estar haciendo las sumas de cada mes.

1 Respuesta

Respuesta
1

Puedes poner una imagen de cómo tienes tus datos, procura que se vean las filas y las columnas de excel.

Y en otra imagen pon en dónde quieres las sumas.

Muchas gracias por responder tan rápido

Este es un ejemplo de como están los datos:

Y así es como quiero que quede la suma:

En este caso la suma está en la columna "H", pero no siempre es así, puede estar en cualquier otra columna dependiendo si se vendieron más o menos artículos.

Y si pones la fórmula de SUMA en la columna H o en la siguiente columna después de los datos. Por ejemplo:

=SUMA(B2:G2)

Y la copias hacia abajo. Solamente tienes que crear la fórmula y copiar hacia abajo (2 pasos)

Lo que pasa es que quiero automatizar el proceso porque son muchos archivos, y lo quisiera hacer para todos sin tener que ponerlo a mano todo cada vez que lo necesito, por eso es que solicito su apoyo para una macro-

Gracias.

¿Cuál es tu idea?

A) 1. Tú quieres abrir el archivo manualmente, 2. La macro ponga las sumas, 3. Tú guardar el archivo manualmente y 4. Tú cerrar el archivo. Repetir los pasos para otro archivo.

B) 1. La macro abra todos los archivos que están en una carpeta, 2. La macro ponga las sumas, 3. La macro guarde el archivo y 4. La macro cierre el archivo. La macro Repita los pasos para otro archivo.

¿Cuál es tu idea, la opción A o la opción B?

La opción B) sería lo más conveniente para mi-

Muchas gracias nuevamente por molestarte en contestarme.

La opción B) sería lo más conveniente para mi-

Para la opción B, responde lo siguiente y en este orden:

1. Nombre de la carpeta donde se encuentran los archivos.

2. Los archivos son de excel.

3. Extensión de los archivos.

4. Pon dos ejemplos de nombres de archivos.

5. Nombre de la hoja de esos archivos.

6. Puede ser que alguno de los archivos ya tenga la columna de totales, si es así cómo puedo saber si ya tiene totales.

1. Nombre de la carpeta donde se encuentran los archivos.

Las carpetas se llaman "ventasmes1" para el mes de enero, "ventasmes2" para febrero y así sucesivamente. 

2. Los archivos son de excel.

Sí, los archivos son de excel.

3. Extensión de los archivos.

La extensión de los archivos es: xlsx

4. Pon dos ejemplos de nombres de archivos.

Los archivos se llaman "Depto1", "Depto2", "Depto3"... 

5. Nombre de la hoja de esos archivos.

Todas las hojas se llaman "hoja1"

6. Puede ser que alguno de los archivos ya tenga la columna de totales, si es así cómo puedo saber si ya tiene totales.

No, ningún archivo tiene totales-

Muchas gracias-

1. Nombre de la carpeta donde se encuentran los archivos.

Las carpetas se llaman "ventasmes1" para el mes de enero, "ventasmes2" para febrero y así sucesivamente.

Eso no lo entiendo, esperaba un nombre de carpeta como: C:\archivos\libros\


Puedes poner otro ejemplo de tu carpeta o pongo una carpeta en la macro y tú la modificas para el siguiente mes. ¿Estás de acuerdo?

Me parece bien, yo modifico el nombre...gracias

Prueba la siguiente macro en algunos libros de prueba para que revises los resultados.

Cambia "C:\trabajo\books\" por tu carpeta con libros de prueba. Después pon la carpeta real.

Sub suma_cada_fila()
  Dim sPath As String, sFile As String, celda As String
  Dim wb As Workbook, nError As Variant
  Dim lr As Long, lc As Long
  '
  Application.ScreenUpdating = False
  sPath = "C:\trabajo\books\"
  sFile = Dir(sPath & "*.xls*")
  '
  Do While sFile <> ""
    Set wb = Workbooks.Open(sPath & sFile)
    On Error Resume Next
    Sheets("Hoja1").Select
    If Err.Number = 0 Then
      '
      On Error GoTo 0
      With wb.Sheets("Hoja1")
        lr = .Range("A" & Rows.Count).End(3).Row
        lc = .Cells(1, Columns.Count).End(1).Column + 1
        celda = .Cells(2, lc - 1).Address(0, 0)
        With .Range(.Cells(2, lc), .Cells(lr, lc))
          .Formula = "=SUM(A2:" & celda & ")"
          .Value = .Value
        End With
        wb.Close True
      End With
      '
    Else
      wb.Close False
    End If
    sFile = Dir()
  Loop
  Application.ScreenUpdating = True
End Sub

Hola Dante Amor, primeramente muchas gracias por la paciencia que tienes en contestar dudas que me imagino para ti son muy elementales, te gradezco tu tiempo y conocimiento que me brindaste.

Hice el cambio en la ruta de los nombres de archivos y funcionó perfectamente, mejor de lo que yo esperaba.

Al final de mi respuesta hay una opción para valorar, si ya no tienes dudas puedes valorar como Excelente, si todavía tienes dudas cuenta conmigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas