14/01/2010, 12:31
|
| | | Fecha de Ingreso: marzo-2007 Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes Puntos: 88 | |
Respuesta: Dudas de excel Hola! AndyDG
1º) Reemplaza el código anterior por este otro: Código PHP: Dim Celda As Range, ii As Integer, Rng As Range Sub Ordenar() Application.ScreenUpdating = False Set Rng = [AA:AB]: Rng.ClearContents Rem Desglosa tipos de teléfonos For Each Celda In Selection If IsNumeric(Left(Celda, 1)) Then NumLet Else LetNum End If Next Celda Rem Ordena Rng.Sort Key1:=Rng(3), Order1:=xlAscending, _ Key2:=Rng(4), Order2:=xlAscending With Selection .NumberFormat = "@" .Value = Evaluate("transpose(transpose(" & _ Rng(1).Resize(Selection.Rows.Count).Address & " & " & _ Rng(1).Offset(, 1).Resize(Selection.Rows.Count).Address & "))") End With Rng.Delete Application.ScreenUpdating = True End Sub Rem Separa número de texto Private Sub NumLet() For ii = Len(Celda) To 1 Step -1 If IsNumeric(Mid(Celda, ii, 1)) Then Exit For Next ii Cells(65536, Rng(1).Column).End(xlUp).Offset(1) = Left(Celda, ii) Cells(65536, Rng(1).Column).End(xlUp).Offset(, 1) = _ Right(Celda, Len(Celda) - ii) End Sub Rem Separa texto de número Private Sub LetNum() For ii = 1 To Len(Celda) If IsNumeric(Mid(Celda, ii, 1)) Then Exit For Next ii Cells(65536, Rng(1).Column).End(xlUp).Offset(1) = Left(Celda, ii - 1) Cells(65536, Rng(1).Column).End(xlUp).Offset(, 1) = Mid(Celda, ii, 20) End Sub 2º) Selecciona el rango a ordenar
3º) Ejecuta la macro llamada Ordenar
Comenta, por favor, como te he ido, ¿si?.
Saludos, Cacho.
Última edición por mrocf; 15/01/2010 a las 07:21 |