Saltar al contenido

Seleccionar celdas en posición relativa a celda activa


Invitado guindall

Recommended Posts

Invitado guindall
publicado

La cuestión planteada es, que desde una macro (MiMacro) se seleccionen varias celdas alternas, en la misma columna, respecto de la celda activa que está comprendida dentro de un rango. Es decir, hay que seleccionar varias celdas en las posiciones relativas según la celda que esté activada inicialmente

Gracias por la ayuda

Prueba.zip

publicado

Hola:

Aquí está la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub


If Target.Column < 6 Or Target.Column > 15 Then Exit Sub


If Target.Row = 31 Or Target.Row = 57 Then

Application.ScreenUpdating = False

Sheets("Hoja2").Select

Sheets("Hoja2").Range(Target.Address).Select
Application.Union(Selection, ActiveCell.Offset(2, 0)).Select
Application.Union(Selection, ActiveCell.Offset(3, 0)).Select
Application.Union(Selection, ActiveCell.Offset(4, 0)).Select
Application.Union(Selection, ActiveCell.Offset(6, 0)).Select
Application.Union(Selection, ActiveCell.Offset(7, 0)).Select
Application.Union(Selection, ActiveCell.Offset(8, 0)).Select

Sheets("Hoja1").Select

Application.ScreenUpdating = True

End If

End Sub


Saludos
[/CODE]

Invitado guindall
publicado

La secuencia funiona, pero las celdas se activan siempre que se seleccionen cualquiera de las celdas del rango. Lo que pretendo es que sólo se activen las celdas cuando se ejecute MiMAcro. 1º Se ejecuta MiMacro y después quedan seleccionadas las celdas. Además se deben activar en la misma Hoja1. (quizás por querer aclarar bien en el adjunto, lo halla liado más). Disculpas.

Gracias por el aporte

publicado

Hola:

Tranquilo, no pasa nada.

Coloca la macro en un módulo, y solo seleccionará el rango cuando la ejecutes.

Sub MiMacro()

Application.Union(Selection, ActiveCell.Offset(2, 0)).Select
Application.Union(Selection, ActiveCell.Offset(3, 0)).Select
Application.Union(Selection, ActiveCell.Offset(4, 0)).Select
Application.Union(Selection, ActiveCell.Offset(6, 0)).Select
Application.Union(Selection, ActiveCell.Offset(7, 0)).Select
Application.Union(Selection, ActiveCell.Offset(8, 0)).Select

End Sub
[/CODE]

Saludos

Invitado guindall
publicado

Gracias. Mil gracias. Todo perfecto

Tema solucionado

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.