Ordenar filas al escribir según el valor de una columna

Necesito que las filas A-I (desde fila 2 a 100), se ordenen de antigua a moderna al escribir una fecha en G. Eternamente agradecido.

1 respuesta

Respuesta
1

[Hola 

Te paso la macro, suponiendo que los títulos esta en la fila 1 tus datos a partir de la fila 2

Sub ordenar()
'Fuente: Dante
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("G2:G100"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").Sort
        .SetRange Range("A2:I100")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Marca una de las opciones para finalizar

Lo primero, mil gracias, hace lo que quería cuando la ejecuto, pero no lo hace al escribir automáticamente la fecha o pegar varias fichas de valores. se podría?

[Hola 

en el evento change de tu hoja copia esto 

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G2:G100")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
        Call ordenar
End If
End Sub

y el siguiente copia en un módulo 

Sub ordenar()
'Fuente: Dante
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("G2:G100"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").Sort
        .SetRange Range("A2:I100")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

y cuando escribas la fecha en la columna G se ordenará automáticamente.

Valora la respuesta como Excelente o bueno para finalizar saludos!

Adriel, menuda rapidez en la respuesta. Perdona mi ignorancia, pero en excel soy de lo más noob y no pillo muy bien lo del evento change ni que es un modulo. Sorry

Pásame tu email para enviarte un ejemplo

[email protected]   me refiero a que no sé donde está el evento change de mi hoja ni crear un modulo (hice un botón una vez :D

Te envié el archivo para veas donde puse el código.

Instrucciones.

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. en la hoja1 copias la otra parte de código

crear un modulo te dejo un link

http://www.raymundoycaza.com/como-insertar-un-modulo-en-excel/ 

Hay 2 opciones Excelente o bueno saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas