Je suis relativement nouveau sur VBA et j'ai quelques questions.
En fin de compte, mon code doit copier les données de différents fichiers dans une feuille de données principale.
Je ne connais pas les différents noms des différents fichiers (cela est déjà couvert), car il y aura de nouvelles données générées de temps en temps. Tous ces fichiers sont xlsx
.
La seule chose qui me manque est que mon code copie les données de différents fichiers dans la plage "a18 - fin de colonne a" et "b18 - fin de colonne b". En fin de colonne, je veux dire qu'il n'y a plus de données.
Malheureusement, je ne sais pas comment copier cela et aussi comment stocker TOUTES les données de toutes les différentes feuilles dans ma feuille principale sans écraser les données.
Code:
Sub CopyData()
Dim strFile As String, strPath As String, strType As String
Dim wbX As Workbook, wksX As Worksheet, wksN As Worksheet
Dim lngCount As Long
Application.ScreenUpdating = False
strPath = "C:\..."
strType = "xlsx"
Set wksN = ThisWorkbook.Sheets(1)
lngCount = 1
wksN.Range(wksN.Rows(lngCount), wksN.Rows(wksN.UsedRange.Rows.Count + lngCount)).Delete
strFile = Dir(strPath & "\*." & strType)
Do Until strFile = ""
'Debug.Print (strFile)
Set wbX = Workbooks.Open(strPath & "\" & strFile)
Set wksX = wbX.Sheets(1)
wksN.Cells(lngCount, 1) = wksX.Cells(1, 1)
lngCount = lngCount + 1
wbX.Close False
strFile = Dir
Loop
Application.ScreenUpdating = True
wksN.SaveAs Filename:="Main"
End Sub
Pour le moment, mon code copie toutes les cellules a1 de tous les fichiers xlsx de mon dossier et colle le contenu les uns sous les autres.
Le code ci-dessous ouvre chaque fichier d'un dossier cible et le fusionne en un,
Code:
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder("\\C:\ update the target folder")
Set filesObj = dirObj.Files
'Here it will open each and every file in the target folder
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
' Paste it in the Macro sheet's non empty row
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub
Que toi
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras