Parfois, copier des données de plusieurs feuilles pour la même colonne devient un travail de routine. Cette étape peut être évitée grâce à l’automatisation. Si vous souhaitez créer une feuille consolidée après avoir copié les données d’une colonne de chaque feuille dans une seule feuille, vous devez lire cet article.

Dans cet article, nous allons créer une macro pour copier les données d’une colonne spécifique et les coller dans une nouvelle feuille.

Les données brutes pour cet exemple se composent de données sur les employés sous la forme d’un classeur Excel contenant trois feuilles avec les coordonnées du service, des personnes et des contacts des employés.

ArrowRaw

Pour copier des données de différentes feuilles dans une nouvelle feuille, nous avons créé une macro «CopyColumns». Cette macro peut être exécutée en cliquant sur le bouton «Exécuter la macro» sur la feuille «principale».

ArrowMain

La macro «CopyColumns» insérera une nouvelle feuille nommée «Master» après la feuille «Main». La feuille «principale» contiendra les données consolidées de toutes les feuilles.

ArrowOutput

Explication du code

Feuilles de travail.Ajouter (après: = Feuilles de travail (« Principal »))

Le code ci-dessus est utilisé pour insérer de nouvelles feuilles de calcul après la feuille de calcul «principale».

Si Source.Name <> « Master » et Source.Name <> « Main » Then End If Above code est utilisé pour restreindre la copie des données des feuilles « Master » et « Main ».

Source.UsedRange.Copy Destination.Columns (Last)

Le code ci-dessus est utilisé pour copier les données de la feuille source vers la feuille de destination.

Pour chaque source dans ThisWorkbook.Worksheets Si Source.Name = « Master » Alors MsgBox « La feuille maître existe déjà »

Exit Sub End If Next Above code est utilisé pour vérifier si la feuille «Master» existe déjà dans le classeur. La macro arrêtera l’exécution si la feuille «principale» existe déjà dans le classeur.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub CopyColumns()

Dim Source As Worksheet

Dim Destination As Worksheet

Dim Last As Long

Application.ScreenUpdating = False

'Checking whether "Master" sheet already exists in the workbook

For Each Source In ThisWorkbook.Worksheets

If Source.Name = "Master" Then

MsgBox "Master sheet already exist"

Exit Sub

End If

Next

'Inserting new worksheets in the workbook

Set Destination = Worksheets.Add(after:=Worksheets("Main"))

'Renaming the worksheet

Destination.Name = "Master"

'Looping through the worksheets in the workbook

For Each Source In ThisWorkbook.Worksheets





If Source.Name <> "Master" And Source.Name <> "Main" Then



'Finding the last column from the destination sheet

Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column



If Last = 1 Then

'Pasting the data in the destination sheet

Source.UsedRange.Copy Destination.Columns(Last)

Else

Source.UsedRange.Copy Destination.Columns(Last + 1)

End If

End If

Next

Columns.AutoFit

Application.ScreenUpdating = True

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]