Excel - Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

 
Vista:
Imágen de perfil de Roberto
Val: 30
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por Roberto (28 intervenciones) el 31/10/2014 08:08:00
Hola a todos

Veréis, estoy intentando mejorar un cuadrante de trabajo creado en excel.
Tenemos la siguiente turnicidad:
"M" - "M" - "T" - "T" - "N" - "N" - " " - " " - " " - " " - "M" - "M" - "T" - "T" - "N" - "N" - " " - " " - " " - " " -

Lo que me gustaría, sería poder autorrenar todos los meses del año con el cuadrante individual de cada uno según corresponda, mediante un botón, por medio de VBA

Lo había conseguido en excel directamente, pero al variar luego algún dato, por ejemplo vacaciones, permisos retribuidos, bajas, etc. me modifica el resto del cuadrante.

Lo que pretendo, es, en una primera hoja de introdución de datos, poner los tres primeros días de trabajo del año de cada uno de los cinco trabajadores del centro de trabajo, y en base a esos tres primeros días, que corresponderían con el 1, 2 y 3 de enero de cada año, mediante un botón situado en ésta primera hora, rellenar el resto de días del mes de enero situado en la segunda hoja, y así sucesivamente en cada una de las siguientes hojas renombradas con el nombre de cada mes, o sea, tercera hoja con febrero, cuarta con marzo, atc.

hoja introdución de datos (Hoja1):
Días de trabajo en Enero:
ENERO...................1..............2............3........
Trabajador 1.... -... "M" - "M" - "T" -
Trabajador 2 - " " - " " - "M" -
Trabajador 3 - " " - " " - " " -
Trabajador 4 - "N" - "N" - " " -
Trabajador 5 - "T" - "T" - "N" -

Enero (Hoja2)
Enero......................1..............2............3........
Trabajador 1
Trabajador 2
Trabajador 3
Trabajador 4
Trabajador 5

Febrero (Hoja3)
Febrero...................1..............2............3........
Trabajador 1
Trabajador 2
Trabajador 3
Trabajador 4
Trabajador 5

Marzo (Hoja4)
Marzo......................1..............2............3........
Trabajador 1
Trabajador 2
Trabajador 3
Trabajador 4
Trabajador 5

....................................
..................................
...............................
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 Roberto
Val: 30
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por Roberto (28 intervenciones) el 01/11/2014 06:17:38
Se me ha ocurrido ésto, pero evidentemente es la peor manera de hacerlo, pues debería de hacer ésto con cada uno de los cinco cuadrantes de cada uno de los cinco trabajadores y con cada una, valga la redundancia nuevamente, de las posibilidades del cuadrante.

Sub cuadrante()

If condición Then

ActiveSheet.Hoja1
Range("e12") = "O" And Range("f12") = "O" And Range("g12") = "T"

Else

'ENERO
ActiveSheet.Next.Select
Range("f11") = "T"
Range("g11") = "N"
Range("h11") = "N"
Range("i11") = ""
Range("j11") = ""
Range("k11") = ""
Range("l11") = ""
Range("m11") = "M"
Range("n11") = "M"
Range("o11") = "T"
Range("p11") = "T"
Range("q11") = "N"
Range("r11") = "N"
Range("s11") = ""
Range("t11") = ""
Range("u11") = ""
Range("v11") = ""
Range("w11") = "M"
Range("x11") = "M"
Range("y11") = "T"
Range("z11") = "T"
Range("aa11") = "N"
Range("ab11") = "N"
Range("ac11") = ""
Range("ad11") = ""
Range("ae11") = ""
Range("af11") = ""
Range("ag11") = "M"

'FEBRERO
ActiveSheet.Next.Select
Range("c11") = "M"
Range("d11") = "T"
Range("e11") = "T"
Range("f11") = "N"
Range("g11") = "N"
Range("h11") = ""
Range("i11") = ""
Range("j11") = ""
Range("k11") = ""
Range("l11") = "M"
Range("m11") = "M"
Range("n11") = "T"
Range("o11") = "T"
Range("p11") = "N"
...............................
...........................
.....................
Marzo
Abril
Mayo
.........
........
.......
....
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 Roberto
Val: 30
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por Roberto (28 intervenciones) el 01/11/2014 09:24:13
Le sigo dando vueltas

hasta ahora conseguía rellenar, con la función anterior, todos los meses del año para un solo trabajador

Se me ocurrió completarla de la siguiente manera, pero solo obtengo errores y no logro solucionarlo de ninguna manera, debido ello mas que nada, a que no tengo ni puñetera idea, por eso recurro a vuestra ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub cuadrante()
 
Sheets("Datos Año").Select
 
If Range("e12") = "O" And Range("f12") = "O" And Range("g12") = "T" And Range("g12") = "T" Then
 
 'ENERO
 Sheets("Enero").Select
 
 Range("f11") = "T" And Range("f13") = "O" And Range("f15") = "" And Range("f117") = "" And Range("f19") = "N"
 Range("g11") = "N" And Range("g13") = "T" And Range("g15") = "O" And Range("g117") = "" And Range("g19") = ""
 Range("h11") = "N" And Range("h13") = "T" And Range("h15") = "O" And Range("h117") = "" And Range("h19") = ""
 Range("i11") = "" And Range("i13") = "N" And Range("i15") = "T" And Range("i117") = "O" And Range("i19") = ""
 Range("j11") = "" And Range("j13") = "N" And Range("j15") = "T" And Range("j117") = "O" And Range("j19") = ""
 Range("k11") = "" And Range("k13") = "" And Range("k15") = "N" And Range("k117") = "T" And Range("k19") = "O"
 Range("l11") = "" And Range("l13") = "" And Range("l15") = "N" And Range("l117") = "T" And Range("l19") = "O"
 Range("m11") = "M" And Range("m13") = "" And Range("m15") = "" And Range("m117") = "N" And Range("m19") = "T"
 Range("n11") = "M" And Range("n13") = "" And Range("n15") = "" And Range("n117") = "N" And Range("n19") = "T"
 Range("o11") = "T" And Range("o13") = "O" And Range("o15") = "" And Range("o117") = "" And Range("o19") = "N"
 Range("p11") = "T" And Range("p13") = "O" And Range("p15") = "" And Range("p117") = "" And Range("p19") = "N"
 Range("q11") = "N" And Range("q13") = "T" And Range("q15") = "O" And Range("q117") = "" And Range("q19") = ""
 Range("r11") = "N" And Range("r13") = "T" And Range("r15") = "O" And Range("r117") = "" And Range("r19") = ""
 Range("s11") = "" And Range("s13") = "N" And Range("s15") = "T" And Range("s117") = "O" And Range("s19") = ""
 Range("t11") = "" And Range("t13") = "N" And Range("t15") = "T" And Range("t117") = "O" And Range("t19") = ""
 Range("u11") = "" And Range("u13") = "" And Range("u15") = "N" And Range("u117") = "T" And Range("u19") = "O"
 Range("v11") = "" And Range("v13") = "" And Range("v15") = "N" And Range("v117") = "T" And Range("v19") = "O"
 Range("w11") = "M" And Range("w13") = "" And Range("w15") = "" And Range("w117") = "N" And Range("w19") = "T"
 Range("x11") = "M" And Range("x13") = "" And Range("x15") = "" And Range("x117") = "N" And Range("x19") = "T"
 Range("y11") = "T" And Range("y13") = "O" And Range("y15") = "" And Range("y117") = "" And Range("y19") = "N"
 Range("z11") = "T" And Range("z13") = "O" And Range("z15") = "" And Range("z117") = "" And Range("z19") = "N"
 Range("aa11") = "N" And Range("aa13") = "T" And Range("aa15") = "O" And Range("aa117") = "" And Range("aa19") = ""
 Range("ab11") = "N" And Range("ab13") = "T" And Range("ab15") = "O" And Range("ab117") = "" And Range("ab19") = ""
 Range("ac11") = "" And Range("ac13") = "N" And Range("ac15") = "T" And Range("ac117") = "O" And Range("ac19") = ""
 Range("ad11") = "" And Range("ad13") = "N" And Range("ad15") = "T" And Range("ad117") = "O" And Range("ad19") = ""
 Range("ae11") = "" And Range("ae13") = "" And Range("ae15") = "N" And Range("ae117") = "T" And Range("ae19") = "O"
 Range("af11") = "" And Range("af13") = "" And Range("af15") = "N" And Range("af117") = "T" And Range("af19") = "O"
 Range("ag11") = "M" And Range("ag13") = "" And Range("ag15") = "" And Range("ag117") = "N" And Range("ag19") = "T"
 
..................................
..............................
.........................
 
 Sheets("Datos Año").Select
 
 Else
 
 End If
 
 End Sub
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 Roberto
Val: 30
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por Roberto (28 intervenciones) el 01/11/2014 14:02:58
Y me vuelvo a responder yo mismo

bien, el comentario anterio solucionado, cambiando el and por dos puntos en los argumentos

Ahora me dice que el procedimiento es demasiado largo, y aún no me puse con los otros cuatro

ruego ayuda para comprimirme la función, muchas gracias

ahí os dejo el cuadrante

bueno, lo subiré desde casa, que desde aquí no me deja

un saludo
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 xve
Val: 31
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por xve (73 intervenciones) el 01/11/2014 18:08:06
Gracias por compartirlo Roberto!!!
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 Roberto
Val: 30
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Duda para Autocompletar, autorrellenar, o usar lista creada con VBA

Publicado por Roberto (28 intervenciones) el 01/11/2014 18:32:52
Pues ahí va mi cuadrante

Contraseña desencriptado: A1234567

Un saludo
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