Hola, requiero de un macro que este constantemente orden

Una es tipo texto y la otra es de números cada celda de texto tiene relación con la celda numero contigua y los datos que se introducen a estas celdas están siendo importados de un documentos.txt. Se inserta primero el texto seguido del numero luego baja un renglón y pone el siguiente texto en la columna 1, el numero en la col. 2, etc. Requiero que cada vez que se termine de introducir el numero se orden alfabéticamente y así para todos los registros que introduzca ( 20 máximo). Gracias por su atención
ej: col g col h col g col h
    1 DP2n 4 1 DA1N 1
    2    RP3g      8        =     2   DP2N    4
    3 DA1N 1 3 RP3g 8
    ...

1 Respuesta

Respuesta
1
Sacame de una duda, el traspado de información lo estas realizando con una macro, porque la solución más simple es poner la instrucción al final de copiar el ultimo dato y en ese momento ordenar. Es lo mejor que podrías hacer si el código de traspado de información te lo permite.
Te envío el posible código a utilizar.
Si requiero de una macro. Porque voy estar utilizando un formulario y al momento que se actualicen los datos se vayan ordenando automáticamente. Gracias por tu atención
La ultima pregunta y te envío el código. El rango a ordenar es definido respecto a las columnas y si todas las celdas tienen datos o existen celdas vacías.
Enviame esta respuesta y te envío el código
Si, bueno ya se ha modificado un poco mi proyecto y ahora requiero de que esa macro me organice alfabéticamente 8 pares de columnas. Si definido respecto a columnas y no habrá celdas vacías. Son 8 pares de columnas similares a las del ejemplo. Yo supongo que con un solo código que ordene repetido 8 veces para sus respectivos rangos se resolverá mi problema. Gracias por tu atención
Acá existen dos posibilidades:
Una que el código que te voy a enviar lo agregues al final del código que tu ocupas o sino crear un nuevo modulo agregar el código y asignar esa macro a un nuevo botón
el código debería ser algo así:
Sub ordenar()
        Range("A1").Select
        primera = ActiveCell.Address
        Selection.End(xlDown).Select
        Selection.End(xlToRight).Select
        ultima = ActiveCell.Address
        Worksheets("Hoja1").Range(primera & ":" & ultima).Sort Key1:=Worksheets("Hoja1").Range("A1")
End Sub
Donde debes poner el nombre de la hoja de los datos, poner el rango a que corresponde los datos
Pruébalo y me comentas
Suerte y juégatela
Hola gracias por tu apoyo. Aunque tuve algunos problemas al aplicar ese código, me marcaba un error en la linea: Worksheets("Sheet1"). Range(primera & "g3:h10" & ultima). Sort Key1:=Worksheets("Sheet1").Range("g3").
Me pasaron el siguiente código y con este ya me funciono al 100:
Range(":").Sort Key1:=Range(""), Order1:=xlAscending, Key2:=Range( _
""), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
Nuevamente gracia por tu tiempo, y no hay de otra más que seguir leyendo y practicando para aprender.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas