Filtro libre, no delimitado Macros

4 envíos / 0 nuevos
Último envío
Angela Patricia
Imagen de Angela Patricia
Offline
última acción: Hace 5 años 2 meses
alta: 11/02/2019 - 20:45
Puntos: 115
Filtro libre, no delimitado Macros

Hola Buenos dias,

como soy novata en el tema de programacion, estoy haciendo una macro para sacar un informe con base en unos filtros que debo hacer, pero no quiero que me delimite el rango final y  no se como hacerlo para dejarlo libre:

 

este es mi codigo:

 

 Sheets("Pegar incapacidades").Select

    Rows("1:1").Select

    Selection.AutoFilter

    ActiveSheet.Range("$A$1:$T$257").AutoFilter Field:=10, Criteria1:="SI"

    ActiveSheet.Range("$A$1:$T$257").AutoFilter Field:=11, Criteria1:="SI"

    ActiveSheet.Range("$A$1:$T$257").AutoFilter Field:=14, Criteria1:=""

    Range("A1:G257").Select

    Selection.Copy

    Sheets("INFORME").Select

    Range("A7").Select

    ActiveSheet.Paste

 

Pero no quiero que finalice en la celda 257, porque esta catidad de datoss puede variar, alguien podria ayudarme por favor

Etiquetas: 

Avalencia
Imagen de Avalencia
Offline
última acción: Hace 2 años 1 mes
alta: 10/02/2019 - 19:24
Puntos: 40
HolaLa solución es igual a tu

Hola

La solución es igual a tu pregunta anterior, usar una variable que ubique la última fila llena y usar la variable en donde sea necesario:

Dim UltimaFila As Long

Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row

Y la usas en donde lo necesites, ejemplo:

  ActiveSheet.Range("$A$1:$T" & UltimaFila).AutoFilter Field:=10, Criteria1:="SI"

Angela Patricia
Imagen de Angela Patricia
Offline
última acción: Hace 5 años 2 meses
alta: 11/02/2019 - 20:45
Puntos: 115
no me funciona para seleccionar y copiar

Abraham muchas gracias

Cree la siguiente variable, para que me seleccione todo el rango y me lo copie para pegarlo en otra hoja pero no me funciona:

Dim Rangodatos As Range

Let Rangodatos = Worksheet.UsedRange

Range("A1:G$" & Rangodatos).Copy

pero no funciona no se como hacerlo..:(

 

Avalencia
Imagen de Avalencia
Offline
última acción: Hace 2 años 1 mes
alta: 10/02/2019 - 19:24
Puntos: 40
Cuando declaras una variable

Cuando declaras una variable como objeto, en este caso "Range", las cosas funcionan distinta. Una variable tipo Range no hace referencia a la dirección de la celda (A1, o A5, o D67, etc.) sino a la celda como un, digamos, "todo", o sea a la celda como el objeto que es. Por cierto, a las variables de objeto se les da valor a través de "Set".

Cuando se usa la propiedad "UsedRange", esta debe ser de una hoja no puedes usar solo "Worksheet.UsedRange", debería ser tipo "Worksheets("Hoja3").UsedRange". Entonce debería quedar así:

Dim Rangodatos As Range

Set Rangodatos = Worksheets("Hoja3").UsedRange

Rangodatos.Copy