Seleccionar Directa de Rangos
-
Upload
juan-paul-sanchez-jimenez -
Category
Documents
-
view
227 -
download
0
description
Transcript of Seleccionar Directa de Rangos
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 1 de 20
SELECCIONAR DIRECTA DE RANGOS
Range(B5:B8).Select
Range(B5,B8).Select
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 2 de 20
Range(B5,B8).Select
Range(A1:A3,C2:C5).Select
Son 15 celdas seleccionadas
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 3 de 20
Range(CUADRO).Select
Range(Enero,Abril).Select
Otro mtodo de seleccionar rangos (til solo para rangos sencillos, no es usado para varios
desde hasta) es usando los corchetes.
[B5:B9].Select
[cuadro].Select
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 4 de 20
SELECCION RELATIVA
Es una referencia a una celda o grupo de celdas, es necesario indicar una referencia inicial
luego las celdas a tomar en cuenta.
Range(A3).Select
ActiveCell.Range(A1:B1).Select
Primero se ubica en A3 y desde ah toma como referencia que esa celda es como el nuevo A1 y
selecciona asumiendo ello, es por ello al decir A1:B1 selecciona hacia la derecha
Range(A3).Select
ActiveCell.Range(A1:A4).Select
Primero se ubica en A3 y desde ah toma como referencia que esa celda es como el nuevo A1 y
selecciona asumiendo ello, es por ello al decir A1: A4 selecciona hacia abajo
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 5 de 20
Range(A3).Select
ActiveCell.Range(B2:C3).Select
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 6 de 20
PROBANDO LA SELECCION
Cierro la ventana de proyectos
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 7 de 20
Hago clic en la primera macro y ejecuto (F5)
Se selecciono el rango de B5 a B9
Sub Macro1()
'Selecciona el rango B5:B9
Range("B5:B9").Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 8 de 20
Ahora voy a probar la seleccin discontinua
Sub Macro3()
'Selecciona los rangos B5:B7 y B14:B16
Range("B5:B7,B14:B16").Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 9 de 20
En caso que haga una seleccin de un nombre de rango inexistente
NO EXISTE EL RANGO, por eso sale el
mensaje podemos finalizar la macro o
tambin podemos Depurar.
Si depuro vemos que se sombrea de color
amarillo donde est el error.
Existe un rango llamado CUADRO entonces
podremos corregir el cdigo modificando el
nombre de rango
Sub Macro4()
'Selecciona el rango llamado
TABLA
Range("TABLA").Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 10 de 20
AHORA VEREMOS CON RESPECTO A MACROS RELATIVAS
Vuelvo activar el Explorador de proyectos y activo el modulo2, luego cierro el explorador de
proyectos para poder tener ms espacio
Sub Macro10()
'Selecciona la region actual
ActiveCell.CurrentRegion.Select
End Sub
Esta orden es lo mismo que pulsar Ctrl+* dentro de la tabla, selecciona todas las celdas de datos.
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 11 de 20
Ahora veremos la macro11
Sub Macro11()
'Selecciona todas las celdas ocupadas o vacias hacia abajo a partir de B4
Range("B4").Select
Range("B4", ActiveCell.End(xlDown)).Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 12 de 20
Si queremos ejecutar paso a paso puedo pulsar F8
Luego que se sombrea el cdigo si pulso F8 veremos la ejecucin del cdigo
Sub Macro11()
'Selecciona todas las celdas ocupadas o vacias hacia abajo a partir de
B4
Range("B4").Select
Range("B4", ActiveCell.End(xlDown)).Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 13 de 20
LA SELECCIN END
Mueve el puntero hasta el final de la seleccin
End(xldown) Ctrl + flecha abajo
End(xlup) Ctrl + flecha arriba
End(xltoRight) Ctrl + flecha derecha
End(xltoleft) Ctrl + flecha izquierda
Range(B4,Range(B9)).Select Range(B4,ActiveCell.End(xlDown)).Select
Estas rdenes desplazan al extreme de una seleccin, tener cuidado de la ubicacin del cursor al inicio ya que podra ocurrir que se desplace hacia el extremo osea a la ltima fila.
Cuidado
Sub Otro()
Range("A4").Select
ActiveCell.End(xlDown).Select
End Sub
Esta macro no selecciona el rango de celdas sino da un salto
Sub Macro11()
'Selecciona todas las celdas ocupadas o vacias hacia abajo a partir de B4
Range("B4").Select
Range("B4", ActiveCell.End(xlDown)).Select
End Sub
Este cdigo selecciona un rango de celdas desde B4 hasta el final de celda con dato B13
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 14 de 20
Si estoy en A8 y ejecuto la siguiente macro
Sub Macro12()
'Selecciona todas las celdas ocupadas o vacias hacia abajo a partir de la
celda actual
Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub
El rango a seleccionar no siempre va a ser la misma sino vara segn donde me encuentre en
ese momento (esta macro es completamente relativa)
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 15 de 20
LA SENTENCIA offset
Usado para referencias relativas con respecto a la posicin actual
ActiveCell.Offset(1,2).Select
En el caso de la macro 13
Sub Macro13()
'Selecciona todas las celdas ocupadas hacia abajo + 1 adicional a partir de la celda actual
Range(ActiveCell, ActiveCell.End(xlDown).Offset(1, 0)).Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 16 de 20
En esta macro vemos que estando en la celda D5 selecciono hasta el final de D9 luego se
desplazo uno hacia abajo y nada a la derecha dando como resultado la seleccin del rango
D5:D10
Sub Macro13()
'Selecciona todas las celdas ocupadas hacia abajo + 1 adicional a partir de la
celda actual
Range(ActiveCell, ActiveCell.End(xlDown).Offset(1, 0)).Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 17 de 20
EJERCICIO APLICATIVO
SOL
Crear una nueva macro Alt+F11
Luego insertar Modulo
Sub Crearcodigo()
Sheets(Range("B3")).Select
End Sub
Lee la celda B3 y salta a la hoja elegida en B3
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 18 de 20
Pensando:
Sub Crearcodigo()
Sheets(Range("B3")).Select
Range("A3").End(xlDown).Select
Cod=Right(ActiveCell,4)+1
0002
Cod=P & 000 & Right(ActiveCell,4)+1
0003
00013
000128
Cod = "P" & Right("000" & Right(ActiveCell, 4) + 1, 4)
Sheets("Datos").Select
Range("B4") = Cod
End Sub
El cdigo finalmente ser
Sub Crearcodigo()
Lista = Range("B3")
Sheets(Lista).Select
Range("A3").End(xlDown).Select
Cod = "P" & Right("000" & Right(ActiveCell, 4) + 1, 4)
Sheets("Datos").Select
Range("B4") = Cod
End Sub
El cdigo anterior tiene un inconveniente que muestra siempre P, ahora lo modificamos
Sub Crearcodigo()
lista = Range("B3") 'hemos creado esta variable para que guarde el contenido de
la celda, ya que si me cambio a otra hoja no existiria el valor
Sheets(lista).Select
Range("A3").End(xlDown).Select
'Cod = "P" & Right("000" & Right(ActiveCell, 4) + 1, 4)
Cod = Left(lista, 1) & Right("000" & Right(ActiveCell, 4) + 1, 4)
Sheets("Datos").Select
Range("B4") = Cod
End Sub
Lista no va entre comillas porque es un nombre de rango, pero si se usara en caso de range
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 19 de 20
Ahora debemos de crear otro cdigo para guarde los datos
Sub Registrar()
Lista = Range("B3")
Codigo = Range("B4")
Descripcion = Range("B5")
Unidad = Range("B6")
Costo = Range("B7")
Sheets(Lista).Select
Range("A3").End(xlDown).Offset(1, 0).Select
ActiveCell = Codigo 'escribio el codigo pero la referencia de la celda no
se ha movido
ActiveCell.Offset(0, 1) = Descripcion
ActiveCell.Offset(0, 2) = Unidad
ActiveCell.Offset(0, 3) = Costo
Sheets("Datos").Select
End Sub
-
Seleccionar directa de rangos
Profesor: Lucio Arango Pgina 20 de 20
Modificando ahora deseo que regrese a la hoja1 y borre los datos
Sub Registrar()
Lista = Range("B3")
Codigo = Range("B4")
Descripcion = Range("B5")
Unidad = Range("B6")
Costo = Range("B7")
Sheets(Lista).Select
Range("A3").End(xlDown).Offset(1, 0).Select
ActiveCell = Codigo 'escribio el codigo pero la referencia de la celda no
se ha movido
ActiveCell.Offset(0, 1) = Descripcion
ActiveCell.Offset(0, 2) = Unidad
ActiveCell.Offset(0, 3) = Costo
Sheets("Datos").Select
Range("B3:B7").Select
Selection.ClearContents 'clear borra todo contenido y formato y
clearcontents borra solo el contenido
Range("B3").Select
End Sub