Excel - configurar tabulador

 
Vista:

configurar tabulador

Publicado por erkillo (22 intervenciones) el 22/03/2007 17:04:28
hola; tengo hecho un calendario como cuadrante, por lo tanto al lado del día uno hay una celda mas y así con todos los dias las cuatro semanas.
Quiero proteger las celdas donde se contienen los números del día (1,2,3,...) pero donde tengo que poner el turno lo voy a dejar sin proteger.
El problema es que cuando protejo la hoja, al tabular para cambiar de celda y pasarse a la celda donde existe el número (no la celda en blanco) sale el molesto comentario de que la hoja está protegida.....

Quisiera saber cómo se puede configurar el salto del tabulador para que salte de celda en blanco a celda en blanco, para evitar dicho mensaje.

por ejemplo (de una semana):

c3 d3 e3 f3 g3 h3 i3 j3 k3 l3 m3 n3 p3 q3
L M X J V S D

lo que quiero es que al tabular de d3 se pase a f3 sin pasar por e3 y así seguidamente y en ésta única hoja de calculo.

Gracias
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

RE:configurar tabulador

Publicado por JuanC (792 intervenciones) el 22/03/2007 23:21:44
La solución puede ser una macro...
Abrí el Editor de Visual Basic (en Excel, con tu libro abierto)
Una vez en el editor, menú Insertar >> Módulo
Dentro del módulo pegá el siguiente código
Modificá el código según el nombre de tu hoja y
las celdas x las cuales querés mover el tabulador,
luego guarda todo y cerrálo.
Al abrirlo debería funcionar...


'//-------------------------------
'//By JuanC - 22 de Marzo de 2007
'//-------------------------------

Sub auto_open()
Application.OnKey "{TAB}", "myTab"
End Sub

Sub auto_close()
Application.OnKey "{TAB}"
End Sub

Sub myTab()
On Error Resume Next
'Si está en la Hoja1 (nombre de la hoja)
If ActiveSheet.Name = "Hoja1" Then
'Según la celda actual (posición inicial) elige la celda destino (posición final)
Select Case ActiveCell.Address(0, 0)
'Si está en la celda A1 ir a la celda B5
Case "A1": [B5].Activate
'Si está en la celda A2 ir a la celda B6
Case "A2": [B6].Activate
'Si está en la celda B6 ir a la celda A2 (vuelve)
Case "B6": [A2].Activate

'Si no está en ninguna celda de interés,
'se ubica en la celda contigua (si no está en la última columna)
Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
'Si no está en la hoja de trabajo hace lo 'normal'
Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End If
End Sub

Saludos desde Baires, JuanC
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

RE:configurar tabulador

Publicado por erkillo (22 intervenciones) el 24/03/2007 21:00:47
gracias, muchas gracias.
Ahora que lo he probado va de fábula pero surge una nueva duda (y así desde que empecé mi proyecto personal...), aunque poco a poco y gracias a vuestra ayuda voy haciendolo.
La nueva duda es la siguiente:

Con el patron que me has proporcionado e introduciendo los datos de las celdas que quiero funciona perfectamente, ahora el problema viene cuando quiero hacer lo mismo con celdas diferentes en otra hoja diferente.
¿que debo hacer?, otra macro nueva me da problemas (cambiando logicamente el nombre de la pagina y celdas) y en la misma macro tambien me da problemas.
¿como lo hago?

Gracias
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

RE:configurar tabulador

Publicado por JuanC (792 intervenciones) el 24/03/2007 22:28:31
Podés modificar la macro...

Select Case ActiveSheet.Name
Case "Hoja1"
Select Case ActiveCell.Address(0, 0)
Case "A1"
.....
End Select
Case "Hoja2"
Select Case ActiveCell.Address(0, 0)
Case "D4"
.....
End Select
.....

Case Else
End Select

Creo que lo podés hacer tranquilamente...

Saludos desde Baires, JuanC
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

RE:configurar tabulador

Publicado por erkillo (22 intervenciones) el 25/03/2007 20:04:11
Gracias por contestar de nuevo JuanC.
Tengo que decirte que me he dado cuenta de que no tengo ni idea de nada, estoy hecho un lio y por mas que miro en la web no me sale nada.
Verás, no sé que hacer con esta última macro que me has proporcionado. La primera que me distes me vale perfectamente, pero para una hoja (supongamos que para hoja1)
Ahora bien, quiero que tabule con otros criterios y rangos diferentes en la hoja2, 3, etc...

Lo que he hecho ha sido copiar y pegar (de mil maneras) el patron que me mandaste en tu primera contestacion, cambiando los nombres de hoja1 por los que correspondían y los rangos.

El resultado es que me da error al compilar: "Se ha detectado un nombre ambiguo: mytab()" , tambien hay otro error que dice que "select case sin end select" y marca en amarillo sub mytab ().

Necesito nuevamente ayuda y ya acabaré con esto de una vez por todas.

Gracias por todo.
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

RE:configurar tabulador

Publicado por JuanC (792 intervenciones) el 25/03/2007 21:21:40
Aquí va todo desde el principio...

'//-------------------------
'//By JuanC - Marzo de 2007
'//-------------------------

Sub auto_open()
Application.OnKey "{TAB}", "myTab"
End Sub

Sub auto_close()
Application.OnKey "{TAB}"
End Sub

Sub myTab()
On Error Resume Next
Select Case ActiveSheet.Name
Case "Hoja1"
Select Case ActiveCell.Address(0, 0)
Case "A1": [B5].Activate
Case "B1": [C5].Activate
Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Select

Case "Hoja2"
Select Case ActiveCell.Address(0, 0)
Case "D4": [G5].Activate
Case "F5": [I5].Activate
Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Select

Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Sub

Saludos desde Baires, JuanC
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

RE:configurar tabulador

Publicado por erkillo (22 intervenciones) el 25/03/2007 21:43:05
Gracias, esto es lo que pongo yo;

'//-------------------------
'//By JuanC - Marzo de 2007
'//-------------------------

Sub auto_open()
Application.OnKey "{TAB}", "myTab"
End Sub

Sub auto_close()
Application.OnKey "{TAB}"
End Sub

Sub myTab()
On Error Resume Next
Select Case ActiveSheet.Name
Case "Hoja1"
Select Case ActiveCell.Address(0, 0)
Case "F4": [F6].Activate
Case "F6": [H4].Activate
Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Select

Case "Hoja2"
Select Case ActiveCell.Address(0, 0)
Case "D4": [G5].Activate
Case "F5": [I5].Activate
Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Select

Case Else: If ActiveCell.Column <> Cells.Columns.Count Then ActiveCell.Offset(0, 1).Activate
End Select
End Sub

Y para comprobar que todo va bien en la hoja1 le doy a continuar y me da un error de compilacion: CASE SIN SELECT CASE, poniendose en amarillo fosforito el comando Sub mytab().

¿que pasa?, está tal y como me lo has pasado cambiendole las celdas (F4 y F6).
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