Dans cet article, nous allons créer une macro pour copier des données à partir d’un classeur fermé.

Nous avons «DataFile» contenant les données des employés, qui incluent le nom, l’âge et le domaine.

ArrowRawData

Nous voulons copier les données de ce fichier vers le fichier principal.

ArrowMain

Avant d’exécuter la macro, nous devons spécifier le chemin du fichier et le nom du fichier.

ArrowOutput

Explication logique

Nous avons créé une macro «OpenClosedWorkbook» pour copier les données du classeur fermé. Il ouvre le classeur, copie les données dans le classeur principal, puis ferme le classeur précédent.

Explication du code

Set WB = Workbooks.Open (FileName)

Le code ci-dessus est utilisé pour créer un objet du classeur ouvert.

WB.Worksheets (« Sheet1 »). Range (« A1 »). CurrentRegion.Copy Le code ci-dessus est utilisé pour copier toutes les données du classeur défini.

ThisWorkbook.Worksheets (« Main »). Range (« A15 »). PasteSpecial (xlPasteValues)

Le code ci-dessus est utilisé pour coller les données copiées dans la feuille de calcul principale.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub OpenClosedWorkbook()

'Declaring variables

Dim FileName As String

Dim WB As Workbook

'Disabling screen updates

Application.ScreenUpdating = False

'Getting file path and file name from the textbox

FileName = Sheet1.TextBox1.Value

'Open the Excel workbook

Set WB = Workbooks.Open(FileName)

'Copy data from sheet1 from opened workbook

WB.Worksheets("Sheet1").Range("A1").CurrentRegion.Copy

'Paste data in the macro file starting from cell A15

ThisWorkbook.Worksheets("Main").Range("A15").PasteSpecial (xlPasteValues)

'Close the workbook without saving

WB.Close (False)

Set WB = Nothing

'Auto adjusting the size of selected columns

Selection.Columns.AutoFit

'Saving the macro file

ThisWorkbook.Save

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]