Visual Basic para Aplicaciones - Código VBA para copiar datos de un archivo a otro

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 14/02/2023 20:28:42
Buenas tardes.
Tengo un archivo con una agenda (Calendario 2023), y otro con Turnos en Consultorios (2- Turnos Febrero 2023).
Quisiera que al seleccionar una fecha de la Agenda, me copie en la misma hoja "Agenda" del archivo Calendario 2023 toda la información contenida en la hoja correspondiente del archivo 2- Turnos Febrero 2023.
Por ejemplo: si selecciono en el Calendario el día 2 de Febrero de 2023, me copie en la hoja Agenda los datos de la hoja "2" del archivo 2- Turnos Febrero 2023. Si selecciono en el Calendario el día 3 de Febrero de 2023, me copie en la hoja Agenda los datos de la hoja "3" del archivo 2- Turnos Febrero 2023, y así con cualquier fecha que yo selecciones en el Calendario.
Desde ya muchas gracias por la ayuda que puedan brindarme, para lo cual adjunto los archivos detallados
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 14/02/2023 20:50:42
Sube los libros y lo miro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 14/02/2023 21:28:35
Estimado Antoni, muchas gracias por tu pronta respuesta. Adjunto archivo comprimido. Espero puedas descargarlo.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 14/02/2023 22:16:19
Si entiendo bien quieres copiar de la hoja Agenda del libro Calendario 2023.xlsm, por ejemplo con fecha de hoy 14 de febrero, la hoja 14 del libro 2-Turnos Febrero 2023.xlsx. O es al rebes.

Y si es así,

¿Qué texto se tiene que copiar?

¿Dónde se indica la hora del destino?

¿Qué es lo que hay que seleccionar?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 14/02/2023 23:43:00
Es al revés Antoni. Quiero copiar en cualquier parte de la hoja "Agenda", el contenido de las celdas A3 a P53 del archivo "2- Turnos Febrero 2023" de la hoja que se corresponde con la fecha seleccionada en el "Calendario", por ejemplo el día "2", o el día "3" o el día "28" o cualquier día que se seleccione. No se si he sido claro con mi respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 15/02/2023 15:35:55
Entendido.

Se tiene que crear una macro en la hoja que al hacer Clic derecho o Doble Clic en la celda valide si hay datos, pregunte si quiere copiar, o no pregunte y copiar lo datos.

Estas macros se llaman:

1
2
3
4
5
6
7
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Worksheet_BeforeDoubleClick"
End Sub
 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Worksheet_BeforeRightClick("
End Sub

Y hay una en cada una de las hojas del los libros, o sea 365 para este año y una más para el que viene que es bisiesto.
Los ficheros de Turno se tienen que pasar de la extensión .xlsx a la extensión .xlsm o .xlsb

Otra cosa.



El Calendario 2023.xlsm estará siempre abierto o tiene que buscarlo, abrirlo, escribir y cerrarlo. O puede que encuentre ambos casos.
Para saber el año del calendario con mirar el año en la celda D1 de la hoja es suficiente.

Algún consejo antes de hacer la macro.

Adjunto muestra del lugar donde poner lo datos copiados en el Calendario.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 15/02/2023 16:19:10
Estimado Antoni,

Entiendo que lo que me escribes son consultas para poder avanzar con la creación de las macros, y por las dudas te comento que solo he recibido el archivo "Calendario 2023". No se si también me querías enviar los archivos "Turnos".

Con un botón en la hoja "Agenda" que al hacer click me copie todos los datos de ese día seleccionado es suficiente, o bien que si es más sencillo; que al hacer click me dirija directamente a la hoja del archivo "Turnos" que corresponda para poder visualizar los datos allí guardados.
En este caso no sería necesario que se copien los datos en la hoja "Agenda". Caso contrario, está bien el lugar donde se van a copiar los datos.

Aguardo tu comentario, y desde ya muchas gracias por el tiempo que me estás dedicando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 15/02/2023 19:46:57
EXCELENTE Antoni!!! Funciona a la perfección!!

Disculpa si abuso de tus conocimientos. Cómo sería el código si en lugar de copiar los datos en la hoja "Agenda", quisiera que directamente se abra la hoja de "Turnos" del día seleccionado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 15/02/2023 21:24:39
No entiendo. ¿Que hoja es la hoja de "Turnos"?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 15/02/2023 22:03:28
Es cualquiera de los archivos de "Turnos", que te adjunto. Loa mismos tienen una hoja por cada día del mes. La idea es que directamente se abra la hoja del día del mes seleccionado en la hoja "Agenda" del archivo "Calendario"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 16/02/2023 01:25:19
Estimado Antoni, agradezco muchísimo tu gran ayuda. Has hecho un trabajo fantástico!!! Muchas gracias por el tiempo que me has dedicado.
No encuentro más palabras para agradecerte.
Ha sido un placer conocerte.
Te envío un fuerte abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 22/02/2023 20:33:58
Buenas tardes Antoni, aquí estoy nuevamente para ver si puedes ayudarme con el archivo que me codificaste.

Según verás, yo le he hecho algunas adecuaciones, pero de ser posible quisiera que si yo hago click en un día distinto al del mes elegido, no se abra el fichero Turnos y me largue un mensaje diciendo que el día seleccionado no corresponde al mes elegido.

Por ejemplo: si he seleccionado el mes de febrero en la Agenda, si hago click en el 30 de enero me largue un texto advirtiendo que es un día de otro mes, y que no se abra ningún fichero de Turnos.

A su vez, cuando esto ocurra; que el cursor se quede en la celda M12 de la hoja Agenda.

Desde ya muchas gracias por la ayuda que puedas brindarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 22/02/2023 21:35:02
Enviame el libro y lo miro.

Saldos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código VBA para copiar datos de un archivo a otro

Publicado por David (9 intervenciones) el 22/02/2023 21:39:32
Ahí va. Pensé que lo abí a adjuntado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Código VBA para copiar datos de un archivo a otro

Publicado por Antoni Masana (498 intervenciones) el 25/02/2023 12:40:22
El Calendario que has adjuntado no tiene las macros.
Parece el antiguo, antes de que lo modificase y le hiciese las macros.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código VBA para copiar datos de un archivo a otro

Publicado por David (1 intervención) el 25/02/2023 13:59:49
Lo voy a revisar a ver qué ha pasado y cuando pueda te lo vuelvo a enviar
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar