Orden de tabulación en una hoja (como si fuera un formulario)

17/02/2006 - 22:26 por ~ jose ~ | Informe spam
Hola, tengo una curiosidad,

Expongo el asunto:
Hay una hoja protegida y existen celdas "desbloqueadas" para poder
escribir en ellas.
Las celdas desprotegidas son:
B1,B2, D1,D2, F1,F2,
B4,B5, D4,D5, F4,F5,
Si nos situamos en B1 al pulsar el "tabulador" nos manda a D1
y si nos situamos en B1 y le damos al "enter" nos mandaria a B2

Se podria dar un orden a las celdas que quiero ir pulse el "enter" o el
"tabulador" indistintamente?
El orden por ejmeplo seria:
B1, B2, D1, D2, F1, F2, B4, B5, D4, D5, F4, F5

Esto que expongo sé que se puede hacer si fuera esto un formulario
pero en una hoja no se si se puede.

Venga un saludo

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
19/02/2006 - 07:54 | Informe spam
hola, chicos "

KL escribio en el mensaje ...
2) Me parece que ambas llamadas a la funcion TRANSPOSE sobran en este codigo (pero igual se me escapa algo) [...]
3) Creo que el siguiente bucle estara saltandose siempre el primer elemento de la matriz:
For Sig = 1 To UBound(misCeldas) [...]
op1: cambiar el 1 por 0
op2: cambiar el 1 por LBound(misCeldas)
op3: Poner la instruccion 'Option Base 1' en la primera linea del modulo de la hoja [...]



perdon por el 'exceso' de informacion :))
[en realidad] por andar evitando la des-re-habilitacion de los eventos... olvide 'comentar el punto' :D

-> el uso de la 'doble funcion' transpose [de hoja de calculo], tiene como objetivo [en el codigo]...
'tomar' una matriz de tipo variant base 0 [por omision] unidimemsional-horizontal...
para 'devolver' una matriz 'convertida' a base 1 [cortesia de Laurent Longre alla por 1999] :D

saludos,
hector.
Respuesta Responder a este mensaje
#7 KL
19/02/2006 - 13:17 | Informe spam
Hola HM,

-> el uso de la 'doble funcion' transpose [de hoja de calculo], tiene como objetivo [en el codigo]...
'tomar' una matriz de tipo variant base 0 [por omision] unidimemsional-horizontal...
para 'devolver' una matriz 'convertida' a base 1 [cortesia de Laurent Longre alla por 1999] :D



Interesante :-)

Saludos,
KL
Respuesta Responder a este mensaje
#8 ~ jose ~
19/02/2006 - 20:03 | Informe spam
Hola,
En un principio expuse este post como curiosidad,
me pareció una buena forma para hacer alguna aplicación en el
'futuro' y caso es que lo estoy emplando en una aplicación que ya
tengo y me está gustando mucho.

El caso que he hecho todo lo uqe me habéis dicho y funciona
"perfectamente", lo único hay una pequeña "pega".
Al abrir el libro si quiero darle al 'enter' o al 'tab' para moverme
sobre la hoja, no hace nada.
Primero hay que pinchar en cualquier celda para que funcione estas
teclas.
Supongo que será alguna chorradica que modificar...no?

Otra cosa, ya que me ha gustado tanto este código, se podria lleva a
mas hojas del mismo libro?
Claro cambiando en cada hoja el orden de tabulación.

He probado a copiar el código de la 'hoja1' a la 'hoja2' , modificar
el código el 'libro' y alguna cosa más pero como no tengo ni pu..
idea de VB entoces, como que no se hacerlo!.
Én estos momentos no me hace falta, (para la aplicación que tengo
hecha) pero seria muy interesante verdad?

Bueno, en vuestras manos lo dejo
Un saludo
Respuesta Responder a este mensaje
#9 Héctor Miguel
20/02/2006 - 05:51 | Informe spam
hola, jose !

___ 1___
... expuse este post como curiosidad, me parecio una buena forma para hacer alguna aplicacion en el 'futuro'
... lo estoy empleando en una aplicacion que ya tengo y me esta gustando mucho.
... funciona "perfectamente", lo unico hay una peque#a "pega".
Al abrir el libro... darle al 'enter' o al 'tab'... no hace nada... hay que pinchar en cualquier celda para que funcione
Supongo que sera alguna chorradica que modificar...no?


___ 2 ___
... se podria lleva a mas hojas del mismo libro?... cambiando en cada hoja el orden de tabulacion.
He probado a copiar el codigo de la 'hoja1' a la 'hoja2', modificar el codigo del 'libro' y alguna cosa mas pero... no se hacerlo!.
en estos momentos no me hace falta, (para la aplicacion que tengo hecha) pero seria muy interesante verdad?



1) la 'pega' que mencionas, tiene una 'razon' [perfectamente] 'fundamentada' y que involucra los siguientes puntos:
a) las teclas enter-return y tab [por si solas] tienen carcteristicas de 'navegacion' [disparan el evento '_selectionchange']
b) al ser 'redireccionadas' para ejecutar un procedimiento... DEJAN de 'hacer su reporte' [dejando a excel -como- 'perdido'] :))
-> toma en cuenta que se esta modificando el 'comportamiento normal' de dichas teclas desde el evento '_open' del libro :(
-> y que en mi propuesta 'original' hacia los comentarios al respecto +/- como sigue:
' [probablemente] sera necesario 'mover' los codigos de re-asignacion de las teclas...
' de -> los eventos '_open' y '_beforeclose' -> del libro ...
' a -> los eventos '_activate' y '_deactivate' -> de 'esa' hoja -?-

2) para 'hacer' una navegacion 'controlada' -> en varias hojas del libro [ademas de considerar el punto anterior]... seguramente...
a) requerira de 'matrices' [varias o de dimensiones multiples] para las hojas, y cada hoja con 'sus celdas'
b) buscar cual seria la 'secuencia perfecta' para el orden de la des/re/asignacion de procedimientos a 'las teclas' [de navegacion]

3) una -posible- alternativa [para el caso 'simple' de la consulta original] es 'forzar' una re/seleccion de celdas y un sendkeys "{enter}"
-> desde el mismo evento '_open' del libro [si no te incomoda 'perder el punto' donde te habias quedado al cerrar el libro] -?-

[como veras] 'esas' teclas requieren de un 'manejo'... perfectamente definido [para poder 'manipularlas' sin perder otros 'beneficios'] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#10 ~ jose ~
20/02/2006 - 20:46 | Informe spam
Hola de nuevo,

He conseguido hacer que al abrir el libro me funcionen las teclas
'enter' y 'tab' sin tener que pinchar en ninguna otra celda.
Como ya comenté, la hoja está protegida y existen celdas
desprotegidas para poder escribir en ellas, pues bien, en el código
del libro en el evento

Workbook_BeforeClose

solo hay que añadirle esta linea:

Sheets("Hoja1").Range("a1").Select

Esto haria que al cerrar el libro nos deja la celda seleccionada en
"A1"
y al abrir el libro, como anteriormente hemos protegido el libro
DESACTIVANDO la opción de "Seleccionar celdas bloqueadas", lo que hace
es automáticamente mandarnos a la celda desprotegida.

He probado la posibilidad de que al abrir el libro ejecute una macro
que seleccione la celda "A1" (por ejemplo) pero me dá error, se me
queda parado en:

For Sig = 1 To UBound(misCeldas)

Así que se me ocurrio la forma que os he comentado.

Ahora lo que estoy intentando hacer es aplicar el orden de tabulación
a otras hojas pero eso ya se me escapa, no doy con el código.
No estoy escribiendo código (porque no se), solo estoy copiando y
pegando de un lado a otro del libro y modificando alguna cosilla que
otra, pero sin más.
Mi cogote no dá para más! (de momento) jejeje

Bueno un saludo, ok?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida