Jump to content

Seleccionar celdas en posición relativa a celda activa


Guest guindall

Recommended Posts

Guest guindall

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

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Guest guindall

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy