# Macro para ordenar datos



## bboybenjy (Apr 19, 2013)

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:









[/URL][/IMG]

<tbody>

</tbody>
de estos datos debo seleccionar solo algunos en especifico(los que estan marcados) y acomodarlos de la siguiente manera:





[/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!!!


----------



## rjwebgraphix (Apr 20, 2013)

El foro para idiomas distintos del inglés se encuentra aquí.

Questions in Other Languages

Un moderador probablemente se moverá este mensaje allí.

---
in English

The forum for non-english languages is located here.  

Questions in Other Languages

A moderator will probably move this message there.


----------



## bboybenjy (Apr 20, 2013)

OK sorry!! I will change the post to the other forum

Thanks!!


----------



## sergioMabres (Apr 21, 2013)

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


----------



## bboybenjy (Apr 22, 2013)

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


----------



## sergioMabres (Apr 22, 2013)

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


----------



## bboybenjy (Apr 23, 2013)

que tal perdon por la demora, he estado un poco atareado y ademas me resultaba un poco nuevo esto de dropbox y skydrive (no sabia usarlos), pero alfin aqui esta el archivo espero que si pueda acceder a el gracias.

https://skydrive.live.com/embed?cid=EE7086A02FC433EC&resid=EE7086A02FC433EC%21150&authkey=AA50fhBMLnDLpoc


----------



## sergioMabres (Apr 23, 2013)

Lo miro y te digo
Sergio


----------



## sergioMabres (Apr 23, 2013)

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:

```
' 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


----------



## bboybenjy (Apr 24, 2013)

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!!


----------



## bboybenjy (Apr 19, 2013)

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:









[/URL][/IMG]

<tbody>

</tbody>
de estos datos debo seleccionar solo algunos en especifico(los que estan marcados) y acomodarlos de la siguiente manera:





[/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!!!


----------



## sergioMabres (Apr 24, 2013)

Si por supuesto, si te hace falta un parte te ayudo


----------

