Forums Últimos mensajes - Powered by IBM
 

Macro de Salto de Celdas

11/10/2007 - 18:00 por kusflo | Informe spam
Necesitaría una macro que ejecutase un salto de celdas Ej: (A1 --> A5)
cuando presionasemos la tecla Enter o Tab en la hoja de calculo. Yo he tenido
la siguiente idea pero no se como plantear el procedimiento en la hoja para
que se ejecute solo cuando se presionan estas teclas

Application.OnKey "{ENTER}", TAREACOMUN
Application.OnKey "~", TAREACOMUN


Function TAREACOMUN()
R = ActiveCell.Row
C = ActiveCell.Column

If R < 2 Then Application.Goto Cells(2, 2)
If R > 100 Then Application.Goto Cells(2, 2)
If C = 2 Then Application.Goto Cells(R, C + 1)
If C = 3 Then Application.Goto Cells(R, C + 1)
If C = 4 Then Application.Goto Cells(R + 1, C - 2)

End Function






"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he
aquí el verdadero saber." Confucio.
 

Leer las respuestas

#1 Héctor Miguel
12/10/2007 - 02:51 | Informe spam
hola, marcos !

... macro que ejecutase un salto de celdas Ej: (A1 --> A5) cuando presionasemos la tecla Enter o Tab en la hoja
... la siguiente idea... no se como plantear el procedimiento en la hoja para que se ejecute solo cuando se presionan estas teclas



suponiendo que quieres prohibir al usuario moverse por un rango distinto de B2:D100 (segun tu codigo)...
y si continuamos suponiendo que estamos hablando de la "hoja1" de tu libro...
copia/pega las siguientes instrucciones en el modulo del libro (ThisWorkbook)

Private Sub Workbook_Open()
With Application
.MoveAfterReturn = True
.MoveAfterReturnDirection = xlToRight
End With
Worksheets("Hoja1").ScrollArea = "$B$2:$D$100"
End Sub

solo toma en cuenta que la propiedad de "mover despues del enter" es una configuracion opcional del usuario/pc
(probablemente habra a quienes no les guste que les jueguen con sus gustos/preferencias personales) -?-
por lo que podrias averiguarla al abrir el libro, cambiarla SOLO para esa hoja, devolverla al cerrar el libro, (etc. etc. etc.)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Application.OnKey "{ENTER}", TAREACOMUN
Application.OnKey "~", TAREACOMUN

Function TAREACOMUN()
R = ActiveCell.Row
C = ActiveCell.Column
If R < 2 Then Application.Goto Cells(2, 2)
If R > 100 Then Application.Goto Cells(2, 2)
If C = 2 Then Application.Goto Cells(R, C + 1)
If C = 3 Then Application.Goto Cells(R, C + 1)
If C = 4 Then Application.Goto Cells(R + 1, C - 2)
End Function

Preguntas similares