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.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.