Visual Basic para Aplicaciones - Ayuda con sortear información de una Hoja desde otra Hoja

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 45
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por Javier Gonzalez (28 intervenciones) el 27/05/2020 19:21:32
Hola buenos dias :

Me surgió un problema, la siguiente rutina la genero con el grabador de macros, la intención es ponerla en un botón que lo tengo en otra hoja y que no se mueva de hoja solo sortee.

Lo primero que observo es que pone fijo la longitud de las filas ( B21, C21, A21) me imagino que tengo que buscar la longitud de las columnas con datos para cambiarlo y la primera instrucción para que seleccione las columnas pero de la hoja donde esta la información y no se cambie la hoja donde estoy.

Podían ver mi rutina ( generada por el grabador ) y orientarme como poder hacerlo,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Columns("A:D").Select
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("B1:B21"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("C1:C21"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("A1:A21"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort
        .SetRange Range("A1:D21")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select



Gracias, Saludos
JAGG
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por Antoni Masana (498 intervenciones) el 27/05/2020 20:40:45
Estaría bien que pusieses la macro entera y el libro.

Tienes que contar cuantas lineas tienes y cambiar el 21 por la variable con el número de líneas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 45
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por Javier Gonzalez (28 intervenciones) el 27/05/2020 22:27:09
Gracias por tu interés:
Estando en la hoja donde están los datos puse la grabadora y
Seleccione los datos y los sortee como los quería y me fui a la primera celda Y pare la grabadora

Esa es toda la macro que salió

Eso quiero que haga solamente, que al darle click a un botón sortee la información, solo que el botón esta en otra hoja

En el caso del ejemplo hay datos en 21 filas pero no siempre es así, tengo que contarlos pero no sé cómo
Ese es el motivo de pedir ayuda

Saludos
JAGG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 79
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por RET (33 intervenciones) el 28/05/2020 08:58:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Columns("A:D").Select
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Clear
 
FilaFin=Sheets("BaseDatosSemanal").Cells(1,1).End(xlDown).Row
 
 
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("B1:B" & FilaFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("C1:C" & FilaFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort.SortFields.Add2 Key:=Range _
        ("A1:A" & FilaFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("BaseDatosSemanal").Sort
        .SetRange Range("A1:D" & FilaFin)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select

IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 45
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por Javier González (28 intervenciones) el 28/05/2020 13:51:28
Gracias por tu respuesta, tengo la duda de la primera instrucción porque selecciona las de la hoja donde está el botón

1
Sheets("BaseDatosSemanal").Columns("A:D").Select

Lo cambié a esto es correcto ? Cómo sería ?

Me marca error

Gracias y saludos
JAGG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 79
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por RET (33 intervenciones) el 28/05/2020 15:00:57
Explica un poco mas. Donde te da el error?

A primera vista, la linea es correcta, pero tampoco es necesaria.

En todo caso, te recomiendo que eches un vistazo aquí, sobre buenas prácticas en VBA. Te evitará bastantes quebraderos de cabeza.

https://informaticamuyfacil.com/buenas-practicas-en-vba/#.Xs-1jzozb4Y


IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 45
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con sortear información de una Hoja desde otra Hoja

Publicado por Javier (28 intervenciones) el 28/05/2020 18:58:22
Buenos dias:

Gracias por tu ayuda

Quite esta instruccion y funciono

1
Columns("A:D").Select


Pense que tenia que seleccionar los datos primero

Gracias y saludos
JAGG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar