Pasar valor de formulario en un libro a celda especifica de otro libro

5 envíos / 0 nuevos
Último envío
Jesus S.P.
Imagen de Jesus S.P.
Offline
última acción: Hace 4 años 6 meses
alta: 20/01/2019 - 16:41
Puntos: 80
Pasar valor de formulario en un libro a celda especifica de otro libro

Hola, buenos días, ante todo me presento, soy Jesus, un saludo a todos.

LLevo ya unos meses trabajando en un proyecto y me e quedado estancado en varias cosas, aunque la más importante y que me lleva de cabeza es lo que e indicado en el asunto, os explico a ver si alguno habéis visto antes algo así o lo teneis trabajando y me podéis hacer ver la luz..

Tengo un cuadrante de personal de trabajo realizado incluyendo al personal en la primera columna y los días del mes en una fila superior, los cuales están en formato fecha.

Ahora bien, me piden hacer un formulario desde otro libro, para evitar que tengan acceso todos los usuarios al cuadrante, que automaticamente meta, en las fechas que quiera el trabajador, los dias que pide libres, en la casilla perteneciente a ese día de él, vamos que no puedan meterse en el de otra persona, no se si me e explicado, gracias por la ayuda de antemano.

Bueno antes de nada decir que todo lo que he hecho en el libro del cuadrante, es en vba

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 53 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Si no has hecho un modelo

Si no has hecho un modelo para imputación de horas y no has organizado el envío de regalos de la campaña de Navidad de tu empresa no te puedes considerar un programador de verdad (de los que solucionan los problemas). Estás en el buen camino.Guiño

 

Si vas a realizar la imputación en un libro y vas a guardar los datos en otro libro, entonces deberías plantearte una solución tipo base de datos (independientemente de que tus datos estén en excel o en una base de datos digamos "real"). me refiero a que los datos estén guardados para que la máquina los entienda y no para que los vea una persona. Bueno, pero eso es otro tema.

Sobre tu caso concreto, tal cual está, lo que yo he hecho alguna vez con un problema parecido es crear una hoja de imputación sin datos donde se elige el nombre de la persona que va a imputar y las fechas de la imputación.

Tras elegir la persona y las fechas, consulto en la "base de datos" los datos de dicha persona y los copio a la hoja de imputación.

La persona anotará sus datos...

Añado un botón para que cuando termine lo pulse y esos datos se copien a la "base de datos"

 

El problema será identificar cuáles son los datos de esa persona (entiendo qeu tendrás unos encabezados con los nombres de cada uno), así que o bien buscas la posición con la función coincidir (Application.Worksheetfunction.Match...)  o bien creas unos bucles que vayan recorriendo las celdas con los nombres y con las fechas para encontrar la que te interese.

En cuanto a escribir en una celda de otro libro es igual que escribir en el mismo libro, simplemente hay que identificar claramente lo que quieres, por ejemplo:

Workbooks("librodedatos").Worksheets("hojacondatos").range("laceldaquesea").Value = Workbooks("librodeimputación").Worksheets("hojaimputación").range("celdaconeldato").Value

bueno, cambiando como es lógico los nombres de tus libros, o empleando variables de objeto para referirte a tus libros, hojas y celdas.

 

 

 

 

------
Ya sé Excel, pero necesito más.

Jesus S.P.
Imagen de Jesus S.P.
Offline
última acción: Hace 4 años 6 meses
alta: 20/01/2019 - 16:41
Puntos: 80
Muchas gracias por la

Muchas gracias por la respuesta, la verdad es que se me han ocurrido varias cosas con tu comentario, aún así me voy a explicar mejor y te aporto una imagen para que veas lo que tengo hasta el momento.

Las casillas donde van a tener que introducirse los datos marcados en el formulario del otro libro que he hecho son las cofluencias de nombre y fecha, ahora mismo en ese rango tengo un formato condicional y una macro en la cual al introducir el codigo de día aparece un msgbox con el día introducido y se colorea en un color dependiendo del motivo que se haya introducido, aún no se muy bien como lo voy a hacer, pero se deberían cargar los días introducidos por los trabajadores al abrir el libro del cuadrante.

He realizado las cosas en varios libros para evitar, en lo posible, que alguno de los trabajadores sepa más que yo, que no es dificil, y me la lie con el cuadrante, aunque tambien e implementado un acceso por usuario y clave.

Entonces, he pensado en que se almacenen los valores de los dias solicitados por los trabajadores en el mismo libro donde está y que posteriormente al abrir el libro del cuadrante que se carguen los datos, pero creo que si se hace así, al actualizar los datos a la vez no se si la macro aguantaría, no se es la impresion que me da, el cuadrante no está abierto todo el tiempo y lo van abriendo los jefes para sacar los listas diarias de trabajo y cambiar diás, etc.., 

Subo una foto para que lo veas, este es el cuadrante y en otro libro está el formulario de entrada de días solo para el personal, está hecho muy simple, solo tiene un desplegable para el motivo de petición, un calendario para la fecha y he utilizado para el usuario la función "Wscript", ya que la sesión de cada usuario se hace por su dni, no se como lo ves, te agradezco mucho la ayuda.

AdjuntoTamaño
Image icon img-20190129-wa0010.jpg501.37 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 53 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Que cada usuario tenga su

Que cada usuario tenga su libro con sus horas puede ser un caos, porque uno añadirá una fila, otro quitará una columna, otro borrará unas celdas que le sobran, y lo que inicialmente eran libros iguales puede acabar siendo un lío tremendo.

Insisto, mi sugerencia es:

  • Los datos de todos en un sitio único común, será tu almacén de datos.
  • Un libro de imputación sin datos, que leerá y escribirá de ese almacén de datos.
  • Libros de resumen, que leerán del almacén de datos.

 

Si sabes quién abre el libro, porque lo lees del login del equipo, puedes leer sus datos de imputación de horas en cuanto abra el archivo de imputación, para mostrarle sus datos del mes en curso, o de esta semana y la pasada, o en un intervalo de fechas que le indiques manualmente.

El formulario de imputación puede ser un libro de sólo lectura porque los usuarios no tienen que guardar nada ahí.

 

 

 

 

------
Ya sé Excel, pero necesito más.

Jesus S.P.
Imagen de Jesus S.P.
Offline
última acción: Hace 4 años 6 meses
alta: 20/01/2019 - 16:41
Puntos: 80
Hola, y de nuevo gracias por

Hola, y de nuevo gracias por ayudarme, entiendo casi todo lo que me comentas y pienso que tienes razón, pero.., el tema de leerlo del login del equipo es porque únicamente se loguearan en el libro los jefes que utilizan el cuadrante, el resto no podrán y el libro del formulario de petición de días estará guardado en un NAS en la misma carpeta donde está el libro del cuadrante, ya que al tener todos los ordenadores "capados" en niveles, los mismos trabajadores cuando acceden a uno con su dni solo podran ver el acceso directo al formulario pero no podrán entrar en la carpeta contenedora, y como no hay ordenador asignado sino que hay varios para todos, cojo el usuario del login de windows por eso.

Lo que no e comprendido muy bien es como hacer un libro de imputación sin datos que lea y escriba, entiendo que te refieres a que al abrirlo se cargue cada vez lo que esta en el libro de datos de todos, no estoy muy ducho aún en VBA así que te rogaría que me trates como un primerizo..

Entonces, el cuadrante que tengo hecho como lo tratarías, como libro de datos común?, mi idea era hacer una hoja por mes, cada día que se saca la lista de trabajos para todos se genera un parte diario con formato en otra hoja del libro que se autorellena y vacía y que se exporta a formato pdf (me lo piden así), y luego lo guardo en una carpeta correspondiente a ese mes y año, esto me lo piden que lo haga así, podrías explicarme tu planteamiento para ver que cambiar o hacer respecto a lo que tengo ya hecho, muchas gracias de nuevo.

Quizas un hoja por persona en el libro de datos común? y un formulario que introduzca los datos que luego recuperaré.., pero no se como podría pasarlos a la celda correspondiente del cuadrante que van a ver los jefes, que es el de la imagen, ya que quieren que siga más o menos el mismo formato que llevan utilizando

Inocente