Ir a celda especifica

30/11/2004 - 14:58 por tikoh | Informe spam
Que tal, me aprovecho de su tiempo y conocimientos?
A ver si me pueden ayudar.
Tengo una tabla en la que la fila superior son fechas: 1/1/04, 2/1/04,
3/1/04...hasta 30/6/04.
En la columna de hasta la izquierda tengo numeros de trabajador: 798, 799,
802, etc.
Esta tabla la utilizo para registrar las faltas de los trabajadores,
marcando una 'x' en la celda correspondiente a trabajador y fecha.
Mi problema es que para posicionarme en una celda tengo que darle CTRL +
B, lo cual me ubica en la fila del trabajador y luego con las flechas me
desplazo hacia la derecha hasta llegar a la fecha necesaria y marco una
'x'.
Serìa posible que me auxilien con un còdigo VBA que solicite numero de
trabajador y fecha y 'marque' una 'x' en la celda correspondiente?
O algo mejor, que tome una tabla de XL con encabezados NUM_TRAB, FECHA,
TIPO DE FALTA, y los 'vacìe' en la matriz de trabajador-fecha?
He usado BuscarV, Buscar, BuscarH, Coincidir, indice, celda, pero no he
obtenido resultados satisfactorios.
Espero haberme explicado.
Y gracias de antemano...!

Preguntas similare

Leer las respuestas

#1 Juan Sánchez
30/11/2004 - 15:41 | Informe spam
Una solución podría ser que utilices tablas dinámicas.
Como dices, puedes crear una tabla con las columnas NUM_TRAB, FECHA y TIPO
DE FALTA y la llenas.
Una vez que tienes datos en la tabla te vas a Datos -> Informe de gráfico y
tablas dinámicas.
Sigue los pasos del y colocas el campo FECHA en la seción de columna, el
campo NUM_TRAB en la sección de fila y el campo TIPO DE FALTA en la sección
de datos. Si este último campo no son solo números, te cuenta las faltas
por empleado y fecha, así obtendrás también totales de faltas por empleado y
por fecha.

La matriz te mostrará 1(s) en lugar de X(s), si todavía quieres las X
entonces le aplicas un formato personalizado.

Por cierto que si el campo TIPO DE FALTA solo contiene X, no es necesario,
ya que solo contarás los registros.

Y se me ocurren muchas otras cosas que podrías hacer con las tablas
dinámicas, p.ej. en lugar del campo TIPO DE FALTA solo lo llamas TIPO y en
esa columna registras, digamos PUNTUAL, FALTA y ATRASO, entonces ese campo
lo agregas a la sección de página y puedes filtrar el cuadro para obtener
los atrasados, los puntuales y los que faltaron.

Otra cosa que podrías hacer después que tengas información de varios meses
es generar un resumen mensual.

Y todo con las tablas dinámicas.

Por cierto, alguien sabe desde que versión están las tablas dinámicas.
Utilizo Excel desde la versión 5 y ya la tenían, ¿viene desde versiones
anteriores?

Slds,
Juan



"RobertoHT" escribió en el mensaje
news:#
Que tal, me aprovecho de su tiempo y conocimientos?
A ver si me pueden ayudar.
Tengo una tabla en la que la fila superior son fechas: 1/1/04, 2/1/04,
3/1/04...hasta 30/6/04.
En la columna de hasta la izquierda tengo numeros de trabajador: 798, 799,
802, etc.
Esta tabla la utilizo para registrar las faltas de los trabajadores,
marcando una 'x' en la celda correspondiente a trabajador y fecha.
Mi problema es que para posicionarme en una celda tengo que darle CTRL +
B, lo cual me ubica en la fila del trabajador y luego con las flechas me
desplazo hacia la derecha hasta llegar a la fecha necesaria y marco una
'x'.
Serìa posible que me auxilien con un còdigo VBA que solicite numero de
trabajador y fecha y 'marque' una 'x' en la celda correspondiente?
O algo mejor, que tome una tabla de XL con encabezados NUM_TRAB, FECHA,
TIPO DE FALTA, y los 'vacìe' en la matriz de trabajador-fecha?
He usado BuscarV, Buscar, BuscarH, Coincidir, indice, celda, pero no he
obtenido resultados satisfactorios.
Espero haberme explicado.
Y gracias de antemano...!


Respuesta Responder a este mensaje
#2 Luis
01/12/2004 - 04:15 | Informe spam
Roberto, este codigo te puede servir. Colocalo en un modulo. El codigo en la
Hoja3 hace el analisis de ubicacion de empleado y fecha que estan en la
Hoja2 y en el cruce marca la X

Public Trabajador As Long
Public Fecha As Date
Sub MarcarTrabajador()
Trabajador = Val(Trim(InputBox("INGRESE EL CODIGO DEL TRABAJADOR")))
If Trabajador = 0 Then Exit Sub
Fecha = Trim(InputBox("INGRESE LA FECHA (dd/mm/aaaa)"))
If Fecha = 0 Then Exit Sub
If Hoja3.Range("b2") = "" Then Hoja3.Range("b2") "=IF(ISERROR(+MATCH(B1,Hoja2!1:1,0)),0,+MATCH(B1,Hoja2!1:1,0))"'crea las
formulas de coincidir si no existen
If Hoja3.Range("c2") = "" Then Hoja3.Range("c2") "=IF(ISERROR(+MATCH(C1,Hoja2!A:A,0)),0,+MATCH(C1,Hoja2!A:A,0))"
Hoja3.Range("C1") = Trabajador
Hoja3.Range("b1") = Fecha
If Hoja3.Range("C2") = 0 Then MsgBox "Este trabajador no existe": Exit
Sub
If Hoja3.Range("b2") = 0 Then MsgBox "La fecha no existe": Exit Sub

If MsgBox("Desea aplicar marca al trabajador " & Trabajador & " en la
fecha " & Fecha & "?", vbYesNo) = vbNo Then Exit Sub

Hoja2.Cells(Hoja3.Range("c2"), Hoja3.Range("b2")) = "x"

End Sub


"RobertoHT" escribió en el mensaje
news:#
Que tal, me aprovecho de su tiempo y conocimientos?
A ver si me pueden ayudar.
Tengo una tabla en la que la fila superior son fechas: 1/1/04, 2/1/04,
3/1/04...hasta 30/6/04.
En la columna de hasta la izquierda tengo numeros de trabajador: 798, 799,
802, etc.
Esta tabla la utilizo para registrar las faltas de los trabajadores,
marcando una 'x' en la celda correspondiente a trabajador y fecha.
Mi problema es que para posicionarme en una celda tengo que darle CTRL +
B, lo cual me ubica en la fila del trabajador y luego con las flechas me
desplazo hacia la derecha hasta llegar a la fecha necesaria y marco una
'x'.
Serìa posible que me auxilien con un còdigo VBA que solicite numero de
trabajador y fecha y 'marque' una 'x' en la celda correspondiente?
O algo mejor, que tome una tabla de XL con encabezados NUM_TRAB, FECHA,
TIPO DE FALTA, y los 'vacìe' en la matriz de trabajador-fecha?
He usado BuscarV, Buscar, BuscarH, Coincidir, indice, celda, pero no he
obtenido resultados satisfactorios.
Espero haberme explicado.
Y gracias de antemano...!







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.796 / Virus Database: 540 - Release Date: 13/11/2004
Respuesta Responder a este mensaje
#3 Tik
02/12/2004 - 21:22 | Informe spam
Luis:

No tengo palabras para agradecerte el tiempo que le has dedicado a esta
Sub, que me ha resuelto las tareas de manera enorme.

Funciona exactamente como lo necesitaba!!!!

Gracias otra vez y espero poder hacer algo por ti alguna vez.

P.D. Aprovecho para comentarte que la modifique para que tome una lista de
empleados con fechas y tipos de faltas y la procese en automático



Luis wrote:

Roberto, este codigo te puede servir. Colocalo en un modulo. El codigo en la
Hoja3 hace el analisis de ubicacion de empleado y fecha que estan en la
Hoja2 y en el cruce marca la X

Public Trabajador As Long
Public Fecha As Date
Sub MarcarTrabajador()
Trabajador = Val(Trim(InputBox("INGRESE EL CODIGO DEL TRABAJADOR")))
If Trabajador = 0 Then Exit Sub
Fecha = Trim(InputBox("INGRESE LA FECHA (dd/mm/aaaa)"))
If Fecha = 0 Then Exit Sub
If Hoja3.Range("b2") = "" Then Hoja3.Range("b2") > "=IF(ISERROR(+MATCH(B1,Hoja2!1:1,0)),0,+MATCH(B1,Hoja2!1:1,0))"'crea las
formulas de coincidir si no existen
If Hoja3.Range("c2") = "" Then Hoja3.Range("c2") > "=IF(ISERROR(+MATCH(C1,Hoja2!A:A,0)),0,+MATCH(C1,Hoja2!A:A,0))"
Hoja3.Range("C1") = Trabajador
Hoja3.Range("b1") = Fecha
If Hoja3.Range("C2") = 0 Then MsgBox "Este trabajador no existe": Exit
Sub
If Hoja3.Range("b2") = 0 Then MsgBox "La fecha no existe": Exit Sub

If MsgBox("Desea aplicar marca al trabajador " & Trabajador & " en la
fecha " & Fecha & "?", vbYesNo) = vbNo Then Exit Sub

Hoja2.Cells(Hoja3.Range("c2"), Hoja3.Range("b2")) = "x"

End Sub


"RobertoHT" escribió en el mensaje
news:#
> Que tal, me aprovecho de su tiempo y conocimientos?
> A ver si me pueden ayudar.
> Tengo una tabla en la que la fila superior son fechas: 1/1/04, 2/1/04,
> 3/1/04...hasta 30/6/04.
> En la columna de hasta la izquierda tengo numeros de trabajador: 798, 799,
> 802, etc.
> Esta tabla la utilizo para registrar las faltas de los trabajadores,
> marcando una 'x' en la celda correspondiente a trabajador y fecha.
> Mi problema es que para posicionarme en una celda tengo que darle CTRL +
> B, lo cual me ubica en la fila del trabajador y luego con las flechas me
> desplazo hacia la derecha hasta llegar a la fecha necesaria y marco una
> 'x'.
> Serìa posible que me auxilien con un còdigo VBA que solicite numero de
> trabajador y fecha y 'marque' una 'x' en la celda correspondiente?
> O algo mejor, que tome una tabla de XL con encabezados NUM_TRAB, FECHA,
> TIPO DE FALTA, y los 'vacìe' en la matriz de trabajador-fecha?
> He usado BuscarV, Buscar, BuscarH, Coincidir, indice, celda, pero no he
> obtenido resultados satisfactorios.
> Espero haberme explicado.
> Y gracias de antemano...!
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.796 / Virus Database: 540 - Release Date: 13/11/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida