Macro para ordenar datos

bboybenjy

New Member
Joined
Apr 19, 2013
Messages
6
Hola muy buenas noches me llamo Daniel, soy nuevo en esto de creacion demacros y espero que me puedan ayudar con esta macro, en realidad lo que necesito es ordenar los siguietes datos y que queden de la forma en que estan mas abajo:

1_zpsbfc74025.jpg
[/URL][/IMG]

<tbody>
</tbody>

de estos datos debo seleccionar solo algunos en especifico(los que estan marcados) y acomodarlos de la siguiente manera:
2-1_zps4cdcb32f.jpg
[/URL][/IMG]

<tbody>
</tbody>
Los datos de la imagen 1 son aleatorios y se van repitiendo con nomenclatura diferente en la columna A, llendo desde U####0 hasta U####9, sin embargo solo necesito los que terminen con U###1,U###2,U###3,U###4,U###5,U###6, tomar los datos correspondientes de cada celda y ordenarlos de la misma forma que la image 2 (solo datos) esto se repite varias veces por lo que debe ir comparando e incrementando.

se me ha ocurrido lo siguiente:
1.- realizar una comparacion de la columna D, donde si tiene el texto:
NoRabEstAttSpeech

<tbody>
</tbody>
2.- salte a la celda A2,donde compare y si termina con 1,2,3,4,5,y/o 6 seleccione desde D2 hasta H7 y lo copie en otra hoja.
3.- ir incrementando el primer contador y que valla comparando hasta que encuentre en la columna D el texto:
NoRabEstAttPIntHs

<tbody>
</tbody>

cuando lo encuentre incrementar para que se ubique en A9 y ejecute el mismo procedimiento que el paso 2 seleccionando los datos respectivos

como veran es algo un poco complejo y mas para alguien que tiene poca exp en el tema de macros, hasta el omento he logrado hacer el codigo para ordenar los datos de forma que queden como en la imagen 1 despues de prosesarlos desde un archivo extraido de un servidor y eliminando datos y espacios inecesarios.

Espero que me puedan ayudar un poco con el tema, se los agradeceria, cualquier sugerencia muchas gracias y saludos!!!
 

Excel Facts

What is the shortcut key for Format Selection?
Ctrl+1 (the number one) will open the Format dialog for whatever is selected.
Yo podría ayudarte, es importante saber como están los datos antes de aplicar la macro y como te gustaría que queden después de aplicar la macro
Después vemos la macro para copiar la info a otra zona o otra hoja
Sergio
 
Upvote 0
Hola que tal, me seria muy útil su ayuda, los datos son como están en la imagen 1 el problema es que en la imagen no caben mas que esos pero aun son muchos datos los que faltan por esa razón decidí subir una copia a internet para que lo pueda mirar por si mismo, espero sea de su utilidad y me pueda ayudar muchas gracias!!

Macro2 - Download - 4shared - Daniel ortes
 
Upvote 0
Con gusto te ayudo, pero tendrias que publicarlo por skydrive o Dropbox, te abris una cuenta y copias el archivo al directorio Dropbox/public o Skydrive/public despues pegas aca el link publico
4Share exige registro y no lo usamos por este motivo
Saludos
Sergio
 
Upvote 0
Es un poco complicado pero se puede hacer con una sola macro, ojo lo que te mando es seudo-codigo no se puede correr pero sirve para mostrar la logica de como hacerlo, este es el seudo codigo:
Code:
' En seudo codigo seria
Buscar en D:D "NoRabEstAttSpeech"
  poner las filas en TR1()
Buscar en D:D "NoRabEstAttPIntHs"
  poner las filas en TR2()
Buscar en D:D "NoRabEstAttPIntEul"
  poner las filas en TR3()
Buscar en D:D "DROP_CALL"
  poner las filas en TR4()
Buscar en D:D "CQIsamples"
  poner las filas en TR5()
' Recorrer la hoja usando TR1 recorre los grupos
fr = 2
For i=1 to TR1.tamaño
  Fila = TR1(i) + 1
  ' Recorre el primer grupo 
  For j=1 to TR2(i)-TR1(i) ' Hasta el proximo titulo
    ' Selecciona solo si Celda tiene contenido 
    If Celda("A" & Fila + j).Value.Lenth > 2 then
      ' Selecciona solo si Cel termina en 1 a 6  
      If Celda("A" & Fila).Value.Right(2) like "1)", "2)", "3)", "4)", "5)", "6)" 
        Asignar a SheetResultado A fr con Celda("A" & Fila + j).Value
        Asignar a SheetResultado B:F fr con Celda("D" & Fila + j ":H").Value
        ' Calcula posicion proxima tabla
        salto = TR2(i)-TR1(i)  
        Asignar a SheetResultado G:K fr con Celda("D" & Fila + j + salto ":H").Value
        ' Calcula posicion proxima tabla
        salto = TR3(i)-TR1(i)  
        Asignar a SheetResultado L:P fr con Celda("D" & Fila + j + salto ":H").Value
        ' Calcula posicion proxima tabla
        salto = TR4(i)-TR1(i)  
        Asignar a SheetResultado Q:R fr con Celda("C" & Fila + j + salto ":D").Value
        ' Calcula posicion proxima tabla
        salto = TR5(i)-TR1(i)  
        Asignar a SheetResultado S fr con Celda("C" & Fila + j + salto ).Value
        Asignar a SheetResultado T fr con Celda("E" & Fila + j + salto ).Value
        ' suma uno a la fila en hoja resultado
        fr = fr + 1 
      endif
    endif    
  next j
next i

Espero entiendas cual es la idea y puedas seguirla
Saludos
Sergio
 
Upvote 0
Muchas Gracias, ya estoy trabajando en ello en cuanto tenga l macro se los informo y si me atoro en alguna otra parte espero me puedan ayudar Grcaias Sergio!!
 
Upvote 0

Forum statistics

Threads
1,215,193
Messages
6,123,566
Members
449,108
Latest member
rache47

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top