H o l a:
Te anexo la macro para ordenar los datos en las 5 hojas
Sub Macro2()
'
Application.ScreenUpdating = False
hojas = Array("Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5")
For i = LBound(hojas) To UBound(hojas)
Set h = Worksheets(hojas(i))
With h.Sort
.SortFields.Clear
.SortFields.Add Key:=h.Range("A1")
.SetRange h.Range("A2:J" & h.Range("A" & Rows.Count).End(xlUp).Row)
.Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
.SortMethod = xlPinYin: .Apply
End With
Next
MsgBox "Terminado"
End Sub
Por otra parte, comentas:
"La idea es que cada vez que ingrese datos en cualquier hoja la macro me los ordene automáticamente"
¿Cómo realizas el ingreso de datos?
¿Lo haces manualmente celda por celda?
Si es así no te recomiendo que se haga de forma automática, ya que en cuanto modifiques una celda la macro se activará y ordenará el registro que estás capturando.
Si aún así quieres que sea automáticamente, entonces pon la siguiente macro en los eventos de tu libro, los datos se ordenarán cada vez que pongas algo en la columna A de la hojas 1 a la 5
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Por.Dante Amor
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Columns("A")) Is Nothing Then
Select Case Sh.Name
Case "Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5"
With Sh.Sort
.SortFields.Clear: .SortFields.Add Key:=Sh.Range("A1")
.SetRange Sh.Range("A2:J" & Sh.Range("A" & Rows.Count).End(xlUp).Row)
.Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
.SortMethod = xlPinYin: .Apply
End With
End Select
Application.ScreenUpdating = True
End If
End Sub
Instrucciones para poner la macro en los eventos ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- En el panel del lado derecho copia la macro
' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )