Macro para Transponer Datos Verticales a Horizontales (VBA)

Obed

15/05/13

Facil y rapido

Haz tu trabajo con mucha rapidez y de manera más sencilla.

Ponte en contacto.

Soporte

Resuelve todas tus dudas y recibe la mejor asesoría en en los proyectos que desarrolles.

¡Contáctanos!

Reportes

Desempéñate mejor en tus tareas con nuestros reportes en Excel.

¡Te decimos como lograrlo!

 
En esta entrada les compartiré una macro para convertir o transponer los datos almacenados en una hoja de Excel y ordenarlos de forma vertical a horizontal.
 
En el Libro adjunto de ejemplo encontrarán dos posibles soluciones, una con código VBA para los que prefieren las macros y la otra con fórmulas, para los que prefieren no complicarse con programación.


Descargar XLS

'****************************************'
' Emaii: obed.cruz@exceitrabajaporti.com '
' www.exceitrabajaporti.com              '
'****************************************'
Option Explicit

Sub AgruparDatosHorizontal()
Dim Arr As Variant, tmp As Variant, i As Integer
Dim objDic As Object, varItems As Variant, varKeys As Variant

Arr = Worksheets("VBA").Range("A1").CurrentRegion

Set objDic = CreateObject("Scripting.Dictionary")

For i = 1 To UBound(Arr)
  objDic(Arr(i, 1)) = objDic(Arr(i, 1)) & Arr(i, 2) & "###"
Next

varKeys = objDic.keys
varItems = objDic.items

With Worksheets("VBA")
  For i = 1 To objDic.Count
   tmp = Split(varItems(i - 1), "###")
   .Cells(i, 5) = varKeys(i - 1)
   .Cells(i, 6).Resize(, UBound(tmp)) = tmp
  Next
End With

Set objDic = Nothing

End Sub
Copyright © 2022 Exceltrabajaporti.com - Todos los derechos reservados.