Jump to content
Sign in to follow this  
ssanceb

Transponer columnas a filas de forma particular

Recommended Posts

Hola amigos y gracias de antemano.

Mi duda es que no logro conseguir la macro exacta para realizar lo que necesito, aquí expongo un ejemplo más simplificado por si podéis ayudarme, me gustaría transponer de columnas a filas, de una forma particular. En las columnas tengo los días de la semana y en las filas nombres de quien realiza las guardias distribuidos en varios bloques, no me importa que copie las celdas en blanco ya que como podéis ver hay en algunas horas más personas que otras, pero simplemente donde está vacío pues que pegue otra celda vacía sin problema:

LUNES MARTES MIÉRCOLES JUEVES VIERNES

L1.1 M1.1

L1.2 M1.2

L1.3 M1.3

L1.4

L2.1 M2.1

L2.2 M.2.2

L2.3 M2.3

L2.4

L2.5

Y me gustaría que quedara de la siguiente forma:

LUNES L1.1 L1.2 L.13 L1.4

LUNES L2.1 L2.2 L2.3 L2.4 L2.5

MARTES M1.1 M1.2 M1.3

MARTES M2.1 M2.2 M2.3

Por ahora lo que tengo es lo siguiente, el problema es que fallo en algo y no lo tengo claro, copio y pego la parte de la macro que corresponde a este proceso:

Dim i As Integer
Dim j As Integer
For i = 1 To 6
For j = 1 To 5
Sheets("Hoja4").Cells(i + 1, j).Copy Destination:=Sheets("Hoja1").Cells(i / i, j + 1)
Next
Next[/CODE]

Espero haber conseguido explicar lo que intento hacer y os doy las gracias de antemano.

Saludos!!!!

[color=#ff0000][b]Editado por moderación para envolver el código con etiquetas.[/b][/color]

Share this post


Link to post
Share on other sites

solo cambia el b2 por la celda donde comienzan tus datos.

Sub ordena()
Set datos = Range("b2").CurrentRegion
Set datos2 = datos.Rows(datos.Rows.Count + 2).Resize(datos.Columns.Count, datos.Rows.Count)

datos.Copy
datos2.PasteSpecial , Transpose:=True

End Sub[/CODE]

[color=#ff0000][b]Editado por moderación para envolver el código con etiquetas.[/b][/color]

Share this post


Link to post
Share on other sites

Muchas Gracias por responder Bond007 me ha ayudado tu macro aunque no es exactamente lo que necesito, voy a intentar explicarme mejor y adjuntar un archivo donde creo que se va a entender perfectamente.

Me gustaría que la macro realizara el cambio tal cual envío adjunto y que he realizado a mano. Aclaro que necesito que la transposición sea en otra hoja distinta.

En la hoja "vertical" viene lo que seria el original y en la hoja "horizontal" lo que realizaría la macro.

Por intentar aclarar como máximo por hora de guardia habría 6 personas pero en algunas ocasiones y días hay 5, en el caso de que haya 5 pues la macro puede copiar sin problema la última casilla en blanco.

Muchas gracias de antemano. Un saludo!!!

Ejemplo Guardias.zip

Share this post


Link to post
Share on other sites

¿Alguien puede echarme una mano con esta parte de la macro que me va a volver loco?

Por cierto se me olvidó añadir que no me importa eliminar la fila de separación en blanco en la primera hoja ("vertical") entre las horas, creo que podría facilitar la macro en parte.

Bueno espero su ayuda.

Saludos!!!

Share this post


Link to post
Share on other sites

Buenas Macro Antonio...no funciona bien....funciona perfecto jajaja. Muchísimas gracias por tu tiempo y tu ayuda.

Voy a intentar comprender la macro paso por paso y supongo que se podría hacer casi de igual forma pero modificándola un poco para que la transposición lo haga en la hoja siguiente en lugar de en la misma hoja, voy a intentarlo y como he dicho.

Muchísimas Gracias.

Saludos!!!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png