Seleccionar Directa de Rangos

20
Seleccionar directa de rangos Profesor: Lucio Arango Página 1 de 20 SELECCIONAR DIRECTA DE RANGOS Range(“B5:B8”).Select Range(“B5”,”B8”).Select

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