Escenario

Suponga que tiene un libro de Excel. Tiene 3 hojas. Una hoja contiene 5 columnas. Cada columna tiene datos de una ciudad diferente. Cada hoja contiene 5 columnas similares con datos diferentes de las mismas ciudades.

image

Desafío:

Necesitamos crear un archivo que contenga diferentes hojas para cada columna única. Cada hoja debe contener los datos de sus respectivas columnas. Al final, tendremos 5 hojas con 3 columnas cada una. En cierto modo, está transponiendo columnas a hojas.

image

Lógica:

Primero, necesitamos crear un libro de trabajo que contenga diferentes hojas para cada columna. Podemos hacer esto mirando los encabezados de la primera hoja de nuestro archivo original.

A continuación, debemos recorrer cada hoja de la hoja original para copiar cada columna en las hojas correspondientes del nuevo libro.

Código VBA para transponer columnas a hojas.

Veamos primero el código VBA para transponer las hojas. Te lo explico a continuación.

Sub TransposeColsToSheets()

'varibles

Dim wb As Workbook

Dim twb As Workbook

Dim lstRw As Integer

Dim lstCl As Integer

Dim cols As Range

With Application

.DisplayAlerts = False

.ScreenUpdating = False

End With

'creating new file

Set wb = Workbooks.Add

'saving the file. Replace the path with your destination.

wb.SaveAs "C:\Users\Manish Singh\Desktop\Excel Tip\result.xlsx"

Set twb = ThisWorkbook

twb.Sheets(1).Activate

lstCl = Cells(1, Columns.Count).End(xlToLeft).Column

'identfying headers for city names

Set cols = Range(Cells(1, 1), Cells(1, lstCl))

'loop to create sheets

For x = 1 To cols.Count

wb.Sheets.Add.Name = "page" & x

Next

'loop to transpose columns to sheets

For Each sh In twb.Sheets

For x = 1 To cols.Count

sh.Activate

lstRw = Cells(Rows.Count, 1).End(xlUp).Row

Range(Cells(1, x), Cells(lstRw, x)).Copy

wb.Sheets("page" & x).Activate

lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1

Range(Cells(1, lstCl), Cells(1, lstCl)).PasteSpecial xlPasteAll

Next x

Next sh

'saving and closing the result workbook

wb.Save

wb.Close

With Application

.DisplayAlerts = True

.ScreenUpdating = True

End With

End Sub

Puede descargar el archivo a continuación para usarlo inmediatamente o copiar el código para personalizarlo según sus necesidades.

Una vez que ejecute el código, inmediatamente creará un archivo de Excel que tendrá 5 hojas, y cada hoja contiene 3 columnas de datos de la misma ciudad.

`enlace: /wp-content-uploads-2019-12-Transpose-Column-To-sheets.xls [

image 48Transpose Column To Sheets]

¿Cómo funciona?

En el código de ejemplo anterior, asumimos que el archivo comienza desde la primera celda de cada hoja y que cada hoja contiene el mismo número de columnas.

En las primeras líneas de código, hemos declarado las variables que necesitaremos en el procedimiento. Hemos guardado los encabezados de las columnas en una variable denominada cols. También hemos creado un archivo .xlsx, denominado result.xlsx *.

A continuación, hemos utilizado un bucle para crear el mismo número de hojas en result.xlsx que en encabezados incols.

'loop to create sheets

For x = 1 To cols.Count

wb.Sheets.Add.Name = "page" & x

Next

A continuación, hemos utilizado un bucle anidado. El primer ciclo consiste en iterar hojas en el archivo original. Siguiente ciclo para copiar cada columna y pegarla en cada hoja en el archivo results.xlsx.

Al final, guardamos el resultado del libro de trabajo.xlsx y lo cerramos. Y ya está.

Así que sí, chicos, así es como pueden copiar cada columna a una nueva hoja en Excel usando VBA. Esto fue preguntado por nuestro usuario Mahmood en la sección de comentarios.

Pensé que merecía un artículo para que esté disponible para todos. Aqui lo tienes. Espero que haya sido lo suficientemente explicativo. Si aún tiene alguna duda o cualquier otra consulta, pregunte en la sección de comentarios a continuación.

Artículos relacionados:

Descarga el archivo de trabajo.

link: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Desactivar mensajes de advertencia usando VBA en Microsoft Excel 2016] | Para desactivar los mensajes de advertencia que interrumpen el código VBA en ejecución, usamos la clase Application.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Add And Save New Workbook Using VBA In Microsoft Excel 2016] | Para agregar y guardar libros de trabajo usando VBA usamos la clase Workbooks. Workbooks.Add agrega un nuevo libro fácilmente, sin embargo …​

Artículos populares:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-your-productividad [50 accesos directos de Excel para aumentar su productividad] | Acelera tu tarea. Estos 50 atajos le permitirán trabajar aún más rápido en Excel.

link: / fórmulas-y-funciones-introducción-de-vlookup-function [La función VLOOKUP en Excel] | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas. enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016] | Cuente valores con condiciones usando esta asombrosa función.

No necesita filtrar sus datos para contar un valor específico. La función Countif es esencial para preparar su tablero.

link: / excel-formula-and-function-excel-sumif-function [Cómo utilizar la función SUMIF en Excel] | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.