Saltar al contenido

Automatizar trabajo


Araiguma

Recommended Posts

publicado

Hola,

Vengo con una consulta para ver si alguien me puede ayudar o dar alguna idea de como puedo hacer lo tengo pensado.

Tengo una base de datos de acumulación en la que cada día tengo que sumar datos nuevos , pero hacerlo con contar si conjunto es un poco meh.. ya que si hay muchisimos datos si o si tengo que formularlo manualmente aun que sea la primera vez y con algunas bases de datos me puedo tirar pfff.. jaja

dejo un Excel de ejemplo para que me entendáis.

 

Muchas gracias

Un saludo

TEST111111.xlsx

publicado

hOLA

¿El origen de los datos son otros libros de Excel o algún software? Tal vez podrías crear una conexión por decir algo, también si es puro Excel hacer una carpeta como repositorio y un libro que esté tomando los datos de ahí. De que hay opciones, las hay.

Saludines.

publicado

Buenas noches,

Si, los nuevos datos siempre me vienen de un exporte de Excel, revisaré lo que me comentas haber que puedo hacer jaja gracias !

  • 2 weeks later...
publicado

A modo de opción B, te dejo un código de VBA que igual te puede servir, si lo incluyes en un botón.

Lo he probado y funciona. Cosas a tener en cuenta:

- Se tendrá que guardar el libro como habilitado para macros.

- Debes darle a las tablas "formato de tabla" y un nombre que tu quieras. Ese nombre, indícalo donde yo he puesto "nombreTabla1" (tabla de valores nuevos) y "nombreTabla2" (tabla mensual).

- Si las tablas se encuentran en libros diferentes, tendrás que hacer referencia a los libros.

ejemplo:

sustituir ActiveSheet.ListObjects("nombreTabla1").Range

por Application.Workbooks("TEST111111.xlsm").Sheets("TEST").ListObjects("nombreTabla2").Range

Public tabla1, tabla2, i, z As Variant 'La "i" y la "z" se usarán para el Loop en este caso

Sub sumarAlMensual()

    Dim item, cliente As String
    Dim cantidad As Integer
    
    Set tabla1 = ActiveSheet.ListObjects("nombreTabla1").Range
    
    For i = 1 To tabla1.Rows.Count - 1
        
        For z = 2 To tabla1.Columns.Count
        
            cantidad = tabla1(i + 1, z).Value
            
            Call sumarItemALaOtraTabla(cantidad)
        Next z
    Next i
End Sub

Sub sumarItemALaOtraTabla(cantidadSumada As Integer)
    
    Set tabla2 = ActiveSheet.ListObjects("nombreTabla2").Range
    
    tabla2(i + 1, z).Value = tabla2(i + 1, z).Value + cantidadSumada
End Sub

De todos modos, espero haberme explicado bien y te haya servido al menos de idea (adjunto archivo, por si quieres probarlo).

Un saludo 

TEST111111.xlsm

publicado

Hola a todos

Otra forma de automatizar este proceso es con Power Query

Lo que se hace es conectarse a los libros de una carpeta y actualizar las sumas

Se puede hacer todo desde PQ o combinando los libros, para luego hacer el análisis en una Tabla dinámica

 

publicado

Hola a todos,

Otra opción, siempre y cuando el exporte diario tenga siempre la misma estructura que la base de datos, podría ser utilizar el Pegado especial.

Ejemplo práctico (siguiendo tu archivo):

Selecciona el rango L15:O18 (que serían los datos a sumar), clic derecho + copiar (o Ctrl+C, como prefieras), sitúate en C16, clic derecho + Pegado especial, y en el cuadro de diálogo que aparece, activa la opción Sumar y clic en Aceptar.

Si todo ha ido bien, ya tienes el cuadro C16:F19 actualizado.

Saludos,

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.