UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

neskat


Querida Comunidad :
Queria pedirle que me ayudaran en lo siguiente , necesito ordenar columnas , pero el orden debe ser de acuerdo a los valores de una fila en forma alfabetica.
Ejemplo , la fila tiene los siguientes valores C2= carlos , D2 = abelardo , E2 = bernardo .
Necesito seleccionar las columnas de la C a la E y que me las ordene alfabeticamente de acuerdo a los valores C2 , D2 y E2 , quedando asi : C2 = abelardo , D2= bernardo , E2 = carlos
Muchas Gracias por su ayuda

tyno


Hola neskat.
En Excel, en cualquier versión, en Datos Ordenar tienes la opción de ordenar de izquierda a derecha. Seleccionas el rango a ordenar, en este caso es la fila 2 C2,D2,E2, etc y cuando des Ordenar en el asistente de Excel 2003 abajo en Opciones seleccionas de Izquierda a Derecha, lo mismo para las versiones posteriores de Excel donde esta opción esta en la parte superior del asistente. Saludos

3 esto tengo el 11/10/13, 01:08 pm

neskat


Estimado, mira tengo esto , solo me falta tome la posicion de la columna donde esta el texto 555 (columna B) y la coloque dentro del parentesis Range , asi como la posicion de la columna donde esta el texto 777 (columna K)
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("C16:J16")

Con esto me toma el rango donde empieza a ordenar , pero no se como convertir un numero en letra , INI me arroja 3 y necesito seleccionar un range que en vez de "C" sea 3 .

Private Sub CommandButton2_Click()



Dim R, INI, E, FIN As Long

Set V = Cells.Find("555")
If Not V Is Nothing Then
R = V.Row
INI = V.Column

Else
MsgBox "Texto 555 No encontrado": Exit Sub
End If

Set W = Cells.Find("777")
If Not W Is Nothing Then
E = W.Row
FIN = W.Column

Else
MsgBox "Texto 777 No encontrado": Exit Sub
End If

INI = INI + 1
FIN = FIN - 1


Columns("INI:FIN").Select
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("C16:J16") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Hoja1").Sort
.SetRange Range("C:J")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With

End Sub



Saludos

tyno


Hay un código de macro para que un valor se convierta en la letra de una columna, por ejemplo 1=A, pero es condigo algo complejo (yo por lo menos no conozco otro) el cual hay que adaptar dentro del código que tienes, pero para no complicar las cosas creo que en lugar de Columns("INI:FIN").Select, puedes usar para:
Excel 2003
range(cells(1,INI),cells(65536,FIN)).Select


Para Excel 2007-10-13
range(cells(1,INI),cells(1048576,INI)).Select



Sería cuestión de probar

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.