Saltar al contenido

Ordenbar filas por valor de columna en macro


Recommended Posts

publicado

Hola de nuevo, estoy trabajando en una macro para copiar filas y luego ordenarlas (para hacer una análisis estadísticos sobre estas) tengo definido el rango y ya poseo la macro para copiar y filtrara las filas como las deseo. Ahora deseo que , con la misma macro, pueda copiar y ordenar al mismo tiempo.

La macro que poseo es ésta:

Sub CopyForm()
Application.ScreenUpdating = False
'Limpiar datos anteriores
Sheets("ANF1").Range("A2:DA46").Cells.ClearContents
Sheets("ANF2").Range("A2:DA46").Cells.ClearContents
'Copiamos las claves desde !claves
'Para la Forma 1
Worksheets("claves").Range("B2:CW2").Copy
Worksheets("ANF1").Range("E47:CZ47").PasteSpecial xlPasteValues
'Para la Forma 2
Worksheets("claves").Range("B3:CW3").Copy
Worksheets("ANF2").Range("E47:CZ47").PasteSpecial xlPasteValues
'Definimos la hoja a buscar
Sheets("Matriz_Binaria").Select
' Buscamos
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop
For x = 2 To FinalRow
' Copiamos las celdas de la columna D que cumplan con la condición
ThisValue = Cells(x, 4).Value
If ThisValue = "Forma 1" Then
Cells(x, 1).Resize(1, 105).Copy
Sheets("ANF1").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Matriz_Binaria").Select
ElseIf ThisValue = "Forma 2" Then
Cells(x, 1).Resize(1, 105).Copy
Sheets("ANF2").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Matriz_Binaria").Select
End If
Next x
'Worksheets("ANF1").Range("A2:DA46").Sort key1:=.Cells(2, 105), Header:=xlYes
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
[/CODE]

y el problema lo tengo en la linea

[CODE]'Worksheets("ANF1").Range("A2:DA46").Sort key1:=.Cells(2, 105), Header:=xlYes[/CODE]

En la columna 105 que proviene de la hoja Matriz_Binaria tengo los valores por los cuales deseo que ordene las filas copiadas, pero, no se como hacerlo.

Saludos para todos.

copiar_foro.zip

  • 1 year later...
publicado

Hola de nuevo, actualice mi versión de office a 2016, y la macro ya no funciona como debería, es decir copia las filas y las ordena, pero, el orden no es correcto, es decir, el nombre de la persona y la forma están bien, pero el resto de la fila no corresponde, por ejemplo:

4	Amaza	Catalina Ignacia 	Forma 2	 1	1	1	1	1	1	1		1	1

y luego de aplicar la macro queda así:

4	Amaza	Catalina Ignacia 	Forma 2	1	1	1	1	0	0	0	1	1	0

los números 1    1    1    1    0    0    0    1    1    0 no son los que le corresponde a ella?

¿Qué debería modificar en la macro para obtener el resultado esperado?

Saludos

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.