Saltar al contenido

Seleccionar celdas en posición relativa a celda activa

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

Featured Replies

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]

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

publicado

Gracias. Mil gracias. Todo perfecto

Tema solucionado

Archivado

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