Scénario

Supposons que vous disposez d’un classeur Excel. Il a 3 feuilles. Une feuille contient 5 colonnes. Chaque colonne contient les données d’une ville différente. Chaque feuille contient 5 colonnes similaires avec des données différentes des mêmes villes.

image

Défi:

Nous devons créer un fichier contenant différentes feuilles pour chaque colonne unique. Chaque feuille doit contenir les données de leur colonne respective. Au final, nous aurons 5 feuilles de 3 colonnes chacune. D’une certaine manière, il transpose des colonnes en feuilles.

image

Logique:

Tout d’abord, nous devons créer un classeur contenant différentes feuilles pour chaque colonne. Nous pouvons le faire en regardant les en-têtes de la première feuille de notre fichier d’origine.

Ensuite, nous devons parcourir chaque feuille de la feuille d’origine pour copier chaque colonne dans les feuilles correspondantes du nouveau classeur.

Code VBA pour transposer les colonnes en feuilles.

Voyons d’abord le code VBA pour transposer les feuilles. Je l’explique ci-dessous.

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

Vous pouvez télécharger le fichier ci-dessus pour l’utiliser immédiatement ou copier le code pour le personnaliser selon vos besoins.

Une fois que vous exécutez le code, il créera immédiatement un fichier Excel qui aura 5 feuilles, chaque feuille contenant 3 colonnes des données de la même ville.

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

image 48Transpose Column To Sheets]

Comment ça marche?

Dans l’exemple de code ci-dessus, nous avons supposé que le fichier commence à partir de la première cellule de chaque feuille et que chaque feuille contient le même nombre de colonnes.

Dans les premières lignes de code, nous avons déclaré les variables dont nous aurons besoin dans la procédure. Nous avons enregistré les en-têtes des colonnes dans une variable nommée cols.Nous avons également créé un fichier .xlsx, nommé result.xlsx *.

Ensuite, nous avons utilisé une boucle pour créer le même nombre de feuilles dans result.xlsx que dans header incols.

'loop to create sheets

For x = 1 To cols.Count

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

Next

Ensuite, nous avons utilisé une boucle imbriquée. La première boucle consiste à parcourir les feuilles dans le fichier d’origine. Boucle suivante pour copier chaque colonne et la coller dans chaque feuille dans le fichier results.xlsx.

En fin de compte, nous enregistrons le classeur result.xlsx et le fermons. Et c’est fait.

Alors oui les gars, voici comment copier chaque colonne dans une nouvelle feuille dans Excel en utilisant VBA. Cela a été demandé par notre utilisateurMahmood dans la section commentaires.

J’ai pensé qu’il méritait un article pour qu’il soit disponible pour nous tous. Ici vous l’avez. J’espère que c’était suffisamment explicatif. Si vous avez encore des doutes ou toute autre question, demandez dans la section commentaires ci-dessous.

Articles liés:

Téléchargez le fichier de travail.

lien: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Désactiver les messages d’avertissement à l’aide de VBA dans Microsoft Excel 2016] | Pour désactiver les messages d’avertissement qui interrompent l’exécution du code VBA, nous utilisons la classe Application.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Ajouter et enregistrer un nouveau classeur à l’aide de VBA dans Microsoft Excel 2016] | Pour ajouter et enregistrer des classeurs à l’aide de VBA, nous utilisons la classe Workbooks. Workbooks.Add ajoute facilement un nouveau classeur, cependant …​

Articles populaires:

lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité] | Accélérez votre tâche. Ces 50 raccourcis vous permettront de travailler encore plus rapidement sur Excel.

lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel] | C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher la valeur de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016] | Comptez les valeurs avec des conditions en utilisant cette fonction étonnante.

Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique. La fonction Countif est indispensable pour préparer votre tableau de bord.

lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel] | C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.