Foro VBATotal
Aprender a programar en Visual Basic
Macro para volcado a sistemas IBM
Cita de Sergio-user en 23 de enero de 2023, 21:03Buenas tardes!
Me encuentro inmerso en un nuevo reto, en este caso estoy preparando una nueva macro para volcar los datos seleccionados a una automatización de AS4oo de IBM se trata de un código de 37 líneas sacado de un trabajo manual en ese sistema el cual debo de aplicar por cada fila de excel del listado, por lo que para dos filas de excel serían 74 líneas, tres 111 y así sucesivamente quedando todas alineadas en la misma columna para exportarlo posteriormente y hacer el volcado de manera automática.
En principio he pensado en contar el número de filas y directamente copiar n veces el código uno debajo del otro y con eso estaría la primera parte resuelta, pero el problema viene en las incorporaciones de los datos de las filas al código, se me han ocurrido varias cosas, por ejemplo copiar el código en una hoja diferente y luego asociar los valores a las celdas para finalmente copiarlas todas a una única columna, pero me he dado cuenta de que hay varias en las que el código tiene los valores de dos celdas, en este caso letras (una celda por ejemplo U y otra N y a la celda del código debe aparecer UN) y no se como hacerlo, por otro lado el resto de las sustituciones que van a variar del numero de fila y si las pongo asociadas directamente al número de celda debería de dejarlo asociado para tropecientas celdas dado que si el listado a volcar son 100 líneas me iria a 3700 líneas y cada grupo de 37 con sus propias asociaciones para que correspondan a los valores de las celdas, así que estoy un poco perdido
Subo un ejemplo que como siempre he desvirtuado del original por temas de protección de datos
El código esta en la columna O y he puesto en diferentes colores las correspondencias del código a las de las celdas y en el codigo he puesto las celdas que tienen que mostrar sus valores
"D7E7 "F7 "D7E7 debe de mostrar los valores de las celdas que quedaría UN y F7 el valor del código de barras 3456765768038
Por favor me podéis echar una mano para ver como lo puedo hacer?
Muchísimas gracias de antemano!!
Buenas tardes!
Me encuentro inmerso en un nuevo reto, en este caso estoy preparando una nueva macro para volcar los datos seleccionados a una automatización de AS4oo de IBM se trata de un código de 37 líneas sacado de un trabajo manual en ese sistema el cual debo de aplicar por cada fila de excel del listado, por lo que para dos filas de excel serían 74 líneas, tres 111 y así sucesivamente quedando todas alineadas en la misma columna para exportarlo posteriormente y hacer el volcado de manera automática.
En principio he pensado en contar el número de filas y directamente copiar n veces el código uno debajo del otro y con eso estaría la primera parte resuelta, pero el problema viene en las incorporaciones de los datos de las filas al código, se me han ocurrido varias cosas, por ejemplo copiar el código en una hoja diferente y luego asociar los valores a las celdas para finalmente copiarlas todas a una única columna, pero me he dado cuenta de que hay varias en las que el código tiene los valores de dos celdas, en este caso letras (una celda por ejemplo U y otra N y a la celda del código debe aparecer UN) y no se como hacerlo, por otro lado el resto de las sustituciones que van a variar del numero de fila y si las pongo asociadas directamente al número de celda debería de dejarlo asociado para tropecientas celdas dado que si el listado a volcar son 100 líneas me iria a 3700 líneas y cada grupo de 37 con sus propias asociaciones para que correspondan a los valores de las celdas, así que estoy un poco perdido
Subo un ejemplo que como siempre he desvirtuado del original por temas de protección de datos
El código esta en la columna O y he puesto en diferentes colores las correspondencias del código a las de las celdas y en el codigo he puesto las celdas que tienen que mostrar sus valores
"D7E7 |
"F7 |
"D7E7 debe de mostrar los valores de las celdas que quedaría UN y F7 el valor del código de barras 3456765768038
Por favor me podéis echar una mano para ver como lo puedo hacer?
Muchísimas gracias de antemano!!
Archivos subidos:- Tienes que conectarte para acceder a las subidas.

Cita de Administrador en 25 de enero de 2023, 11:52Buenas Sergio,
Hay partes que no entiendo muy bien. Al final se trata de repetir el código un número de veces y, por lo que veo, tu código no se encuentra indexado, si no que apunta a celdas concretas en lugar de hacerlo a celdas relativas.
Si cada vez que copias el código, incluyes 37 líneas más, es fácil saber qué posición ocupará la celda D7 para el segundo código: cells(i+37, "D")
y si lo has copiado varias veces, creas una variable k que contenga el número de copias, y podrás así apuntar a todas las filas que tengan la misma línea de código: cells(k*37,"D")
También podrías usar un DLookUp y localizar las filas directamente por el literal del código.
Se me ocurren muchas maneras.
He conseguido aclararte algo? Que no te importe preguntar hasta que lo consigas solucionar.
Saludos.
Buenas Sergio,
Hay partes que no entiendo muy bien. Al final se trata de repetir el código un número de veces y, por lo que veo, tu código no se encuentra indexado, si no que apunta a celdas concretas en lugar de hacerlo a celdas relativas.
Si cada vez que copias el código, incluyes 37 líneas más, es fácil saber qué posición ocupará la celda D7 para el segundo código: cells(i+37, "D")
y si lo has copiado varias veces, creas una variable k que contenga el número de copias, y podrás así apuntar a todas las filas que tengan la misma línea de código: cells(k*37,"D")
También podrías usar un DLookUp y localizar las filas directamente por el literal del código.
Se me ocurren muchas maneras.
He conseguido aclararte algo? Que no te importe preguntar hasta que lo consigas solucionar.
Saludos.
Cita de Sergio-user en 25 de enero de 2023, 23:41Al final haciendo uso de lo aprendido (Gracias a ti) lo he planteado como en la macro de los envíos por correo, he concatenado las celdas y voy a crear una hoja por cada fila , después voy a pegar el código con sus formulas concatenadas en cada hoja para que me actualice los datos y posteriormente ir pegando el código resultante solo con los valores uno detrás del otro en otra hoja final que sería la que debo de exportar para poder introducir los datos automáticamente en AS400, a ver si cuela XD...
Al final haciendo uso de lo aprendido (Gracias a ti) lo he planteado como en la macro de los envíos por correo, he concatenado las celdas y voy a crear una hoja por cada fila , después voy a pegar el código con sus formulas concatenadas en cada hoja para que me actualice los datos y posteriormente ir pegando el código resultante solo con los valores uno detrás del otro en otra hoja final que sería la que debo de exportar para poder introducir los datos automáticamente en AS400, a ver si cuela XD...

Cita de Administrador en 26 de enero de 2023, 07:32Está bien pensado. Por aquí ando si necesitas algo.
Saludos 😉
Está bien pensado. Por aquí ando si necesitas algo.
Saludos 😉