Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/01/2010, 10:37
Avatar de ceSharp
ceSharp
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Dudas de excel

hola andy,

quizá esta solución es un pelin más complicada, pero para tu caso necesitas algo muy genérico ya que los números de terminal no tiene una longitud fija (4 caracteres, 3 e incluso 2 caracteres) ni las letras tampoco.

vamos por pasos.
1) abre tu hoja excel
2) pulsa Alt+F11 (aparecerá el árbol de hojas para introducir código VBA)
3) click derecho en el árbol donde dice Microsoft Excel Objetos
4) Insertar-->Módulo
5) Pega este código en el módulo creado
'----------------------------------
Public Sub orden()
Dim num As Integer
num = 1
Dim numeros As String
Dim letras As String
Dim primerCaracter As String
'recorremos toda la columna A hasta que encuentre un vacío
Do
Dim movil As String
movil = Hoja1.Range("A" & num)
'comprobamos si el primer caracter es letra o número
If IsNumeric(Mid(movil, 1, 1)) Then
primerCaracter = "numero"
Else
primerCaracter = "letra"
End If
'hacemos un bucle con el contenido de la celda para separar números de letras
For i = 1 To Len(movil)
If IsNumeric(Mid(movil, i, 1)) Then
numeros = numeros & Mid(movil, i, 1)
Else
letras = letras & Mid(movil, i, 1)
End If
Next
'finalizado el bucle mostramos los resultados en las columnas B y C
'en función de su el primer caracter es número o letra
If primerCaracter = "letra" Then
Hoja1.Range("C" & num) = numeros
Hoja1.Range("B" & num) = letras
Else
Hoja1.Range("B" & num) = numeros
Hoja1.Range("C" & num) = letras
End If
num = num + 1
numeros = ""
letras = ""
primerCaracter = ""
Loop Until Hoja1.Range("A" & num) = ""
End Sub
'---------------------------------------
6) En el mismo árbol haz doble click en Hoja1
7) Pega este código
'--------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call orden
End Sub
'---------------------------

De esta manera tu debes de escribir los terminales en la columna A y automáticamente Excel te va a separar las letras de los números. Ahora lo que puedes hacer es ordenar los terminales con los criterios de las columnas B y C.

espero que sepas implementarlo y, por supuesto, que te sirva! ;)

salu2