Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ordenbar filas por valor de columna en macro

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

Featured Replies

publicado

Prueba con:


Worksheets("ANF1").Range("A2:DA46").SortSpecial key1:=Worksheets("ANF1").Columns(105)

[/CODE]

publicado
  • Autor

Genial, gracias por la respuesta, es justo lo que necesitaba.

Tema Solucionado

  • 1 year later...
publicado
  • Autor

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

Editado el por pablgonz
No volver a habrir un nuevo tema

  • Silvia bloqueó este tema

Archivado

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.