Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de compilation de données

1 réponse
Avatar
vince
Bonjour tout le monde,
j'ai un soucis de compilation de donn=E9es =E0 partir de=20
plusieurs fichiers.je m'explique:
il faudrait que je puisse =E0 partir de ma macro all=E9=20
chercher les donn=E9es que je veux =E0 partir de telle ou=20
telle ligne de ces fichiers voil=E0 ma macro:
Option Explicit

Public i As Integer

Dim WBase As Workbook
Dim WSBase As Worksheet
Dim Book As Variant


Sub Ini()

Application.ScreenUpdating =3D False

i =3D 5

Cells.Clear

Set WBase =3D ThisWorkbook
With WBase
Set WSBase =3D .Worksheets("recapitulatif")
End With

OpenBook

Application.ScreenUpdating =3D True

End Sub

Sub OpenBook()
With Application.FileSearch
.NewSearch
.LookIn =3D ThisWorkbook.Path
.FileType =3D msoFileTypeExcelWorkbooks
.Execute
On Error Resume Next
For Each Book In .FoundFiles
If Book <> ThisWorkbook.FullName Then
Workbooks.Open Book
Call CheckBook
End If
Next Book
End With
End Sub

Sub CheckBook()
Dim WB As Workbook
Dim lig As Integer
Set WB =3D ActiveWorkbook

lig =3D Range("a65536", Range("a1").End(xlDown)).Row

i =3D i

Application.DisplayAlerts =3D False

Rows("1:" & lig).Copy
=20
ThisWorkbook.Sheets("recapitulatif").Cells(i,=20
1).PasteSpecial

i =3D i + lig

WB.Close
Application.DisplayAlerts =3D True

End Sub

Par exemple: je veux prendre les donn=E9es de la feuille x =20
a partir de la ligne 6 et ainsi que dans toutes les=20
autres feuilles des autres classeur du r=E9pertoire
En vous remerciant d'avance
vince

1 réponse

Avatar
michdenis
Bonjour Vince,

Voici une procédure qui va copier dans la feuille "récapitulatif", toutes les données contenues dans la feuille "Feuil1"
de tous les classeurs contenu dans le répertoire . Cela suppose que tous tes classeurs possède une feuille ayant le même
nom qui représente la feuille source de tes données. Pour ce faire, renseigne la variable identifiée à cet effet dans la
procédure.


'-----------------------------------------
Sub OpenBook()

Dim Rg As Range, Dest As Range
Dim Wk As Workbook, Wk1 As Workbook
Dim Nom As String

'*****à déterminer************
Nom = "Feuil1" 'Nom de la feuille source des données
'***************************

Set Wk1 = ThisWorkbook

'Empêche le rafraîchissement de l'écran
Application.ScreenUpdating = False

With Application.FileSearch
.NewSearch
.LookIn = ThisWorkbook.Path & ""
.FileType = msoFileTypeExcelWorkbooks
If .Execute > 0 Then
For A = 1 To .FoundFiles.Count
Set Wk = Workbooks.Open(.FoundFiles(A))
'Détermine la plage à copier
With Wk
With .Worksheets(Nom)
Set Rg = .Range("A6:A" & .Range _
("A65536").End(xlUp).Row).EntireRow
End With
End With
'Feuille de destination
With Wk1.Worksheets("recapitulatif")
Set Dest = .Range("A" & .Range("A65536") _
.End(xlUp)(2).Row)

End With
'Copie de l'information d'un classeur à l'autre
Rg.Copy Dest
Wk.Close False
Next
End If
End With
'Libère l'espace mémoire occupée par les objets.
Set Wk = Nothing: Set Wk1 = Nothing
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
'-----------------------------------------


Salutations!



"vince" a écrit dans le message de news:37fd01c375e5$4f719430$
Bonjour tout le monde,
j'ai un soucis de compilation de données à partir de
plusieurs fichiers.je m'explique:
il faudrait que je puisse à partir de ma macro allé
chercher les données que je veux à partir de telle ou
telle ligne de ces fichiers voilà ma macro:
Option Explicit

Public i As Integer

Dim WBase As Workbook
Dim WSBase As Worksheet
Dim Book As Variant


Sub Ini()

Application.ScreenUpdating = False

i = 5

Cells.Clear

Set WBase = ThisWorkbook
With WBase
Set WSBase = .Worksheets("recapitulatif")
End With

OpenBook

Application.ScreenUpdating = True

End Sub

Sub OpenBook()
With Application.FileSearch
.NewSearch
.LookIn = ThisWorkbook.Path
.FileType = msoFileTypeExcelWorkbooks
.Execute
On Error Resume Next
For Each Book In .FoundFiles
If Book <> ThisWorkbook.FullName Then
Workbooks.Open Book
Call CheckBook
End If
Next Book
End With
End Sub

Sub CheckBook()
Dim WB As Workbook
Dim lig As Integer
Set WB = ActiveWorkbook

lig = Range("a65536", Range("a1").End(xlDown)).Row

i = i

Application.DisplayAlerts = False

Rows("1:" & lig).Copy

ThisWorkbook.Sheets("recapitulatif").Cells(i,
1).PasteSpecial

i = i + lig

WB.Close
Application.DisplayAlerts = True

End Sub

Par exemple: je veux prendre les données de la feuille x
a partir de la ligne 6 et ainsi que dans toutes les
autres feuilles des autres classeur du répertoire
En vous remerciant d'avance
vince