Si está dentro de un rango

Hola, muchas gracias de antemano a quien pueda ayudarme.
Mi pregunta es, ¿Qué lineas de código debo escribir para que un procedimiento de evento Worksheet_Change, me discrimine si los cambios se han producido en celdas que pertenecen a un determinado rango ( en mi caso, seria en celdas de una determinada columna) o no?
Respuesta
1
La función que facilita el control que pretendes es INTERSECT(). A continuación, muestro un ejemplo que muestra como lo utilizo.
Para empezar, activa el editor de Visual Basic (presiona Alt+F11) y busca
la hoja donde quieres que esto ocurra (donde harás la carga de datos). Da doble click sobre ella. (Otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código)
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Indica cual es el Rango de control:
RangCtrl = "A2:D20"
Set EnRango = Application.Intersect(Range(RangCtrl), Target)
If Not EnRango Is Nothing Then
MsgBox "Modificó rango " & RangCtrl & Chr(10) & "en celda " & Target.Address(False, False) 'reemplaza esto por la macro que quieres que se ejecute
End If
Set EnRango = Nothing
End Sub
Al comienzo de la macro podrás definirle el rango que quieres que sea controlado.
Cuando alguna celda dentro de ese rango se modifique, se dispra la macro.
En el ejemplo, simplemente muestra un mensaje, pero podrás colocar allí el nombre de la macro a ejecutar o, directamente, sus comandos.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.
Muchas gracias por tu respuesta, es exactamente lo que estaba buscando.
¡Ah!, por cierto ya he visitado la página web que me recomendaste.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas