Récupérer les données de plusieurs fichiers

Bonjour je souhaite récupérer les mêmes données dans plusieurs fichiers.

Les fichier sources sont comme ceci :

fichier source

J'ai réussi à insérer les differentes données dans un fichier récapitulatif :

fichier recapitulatif

Sauf pour la colonne K,OC load, qui correspond a la valeur maxi de chargement en Newton soit la colonne B du fichiers sources.

Je ne comprend pas pourquoi ma valeur obtenue est fausse, j'ai utilisé fonction Application.WorksheetFunction.Max

La macro pour trouver le maximum marche tout seule, mais des que j'essaye de l’intégrer a ma macro qui ouvre la feuille et récupère les données la valeur donnée n'est pas bonne.

Set Cellules = Range("B23:B26")

Set Cellules = ActiveSheet.Range("B23:B26")

Range("D20").Value = Application.WorksheetFunction.Max(Cellules)

Je dois bien effectuer ce calcul entre le moment où j'ouvre mon fichier source et où je copie les données?

Ci vous pouvez m'éclairer.

De plus j'ai besoin d'aide pour calculer également une pente dans chaque fichier source puis l'inserer dans mon fichier récapitulatif, entre 20 et 50N avec le déplacement correspondant, seulement entre les différents fichiers ce n'est pas forcement les même cases. Il faudrait trouver auparavant les cases où la valeur est entre 20 et 50. Tester case après case, si la valeur de la cellule est >20 on commence la sélection (avec sa coordonnée de déplacement correspondante) et lorsque la valeur de la cellule est >50 on met fin a la selection. Mais en pratique je ne sais pas comment m'y prendre.

Je suis débutant en macro excel, j'ai quelques connaissances en language VB.

Merci d'avance.

Ci joint le code :

'------------------------------------------------------------------------------
' Macro qui permet de compiler les informations contenues dans
' différents fichier pour les regrouper dans un fichier récapitulatif
' GCXL
'-------------------------------------------------------------------------------
Sub Creer_Recapitulatif()
Dim wbRecap As Workbook 'fichier recap
Dim wsRecap As Worksheet 'feuille où on écrit les données
Dim wbSource As Workbook 'fichier à ouvrir
Dim wsSource As Worksheet 'feuille où on cherche les données
Dim DernLign As Integer 'ligne où on écrit les données
Dim vFichiers As Variant 'noms des fichiers
Dim i As Integer, k As Integer
Dim rgRecap As Range 'plage où on copie les données
Dim Cellules As Range

Set wbRecap = ThisWorkbook 'Fichier récapitulatif
Set wsRecap = wbRecap.Sheets(1) 'on écrit dans la feuille 1 du fichier récapitulatif

' --- Ouvrir boite de dialogue pour sélectionner les fichiers à ouvrir
vFichiers = Selectionner_Fichiers("Sélectionner les fichiers à compiler") 'Appel de Fonction pour ouvrir fichiers

' --- Vérifier qu'au moins un fichier à été sélectionné
If Not IsArray(vFichiers) Then
Debug.Print "Aucun fichier sélectionné."
MsgBox "Erreur! Aucun/Mauvais fichier sélectionné."
Exit Sub
End If
On Error Resume Next

Application.ScreenUpdating = False

' --- Boucle à travers les fichiers
For k = 1 To UBound(vFichiers)
Application.StatusBar = ">> Lecture du fichier #" & k & "/" & UBound(vFichiers)

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
' C'est ici qu'on écrit les instructions
Set wbSource = Workbooks.Open(vFichiers(k)) 'on ouvre le fichier
Set Cellules = Range("B23:B26")
Set Cellules = ActiveSheet.Range("B23:B26")
Range("D20").Value = Application.WorksheetFunction.Max(Cellules)
Set wsSource = wbSource.Sheets(1) 'On copie les données de la feuille 1
DernLign = wbRecap.Sheets(1).Range("A60000").End(xlUp).Row + 1 'ligne pour écrire le log des fichiers compilés

' - On copie les données vers le fichier Recapitulatif; à adapter
Set rgRecap = wsRecap.Range("A65000").End(xlUp).Offset(1, 0)
rgRecap = wbSource.Name

With wsSource
rgRecap.Offset(0, 1) = .Range("B13")
rgRecap.Offset(0, 2) = .Range("B15")
rgRecap.Offset(0, 3) = .Range("B14")
rgRecap.Offset(0, 4) = .Range("B20")
rgRecap.Offset(0, 5) = .Range("B22")
rgRecap.Offset(0, 7) = .Range("B17")
rgRecap.Offset(0, 8) = .Range("B23")
rgRecap.Offset(0, 10) = .Range("D20")

End With

wbSource.Close 'fermer fichier
Set wbSource = Nothing
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Next k

Application.ScreenUpdating = True
Application.StatusBar = False

End Sub

Function Selectionner_Fichiers(sTitre As String) As Variant
Dim sFiltre As String, bMultiSelect As Boolean

sFiltre = "Fichiers XYZ (.xls)(.xlsm), *.xls*"
bMultiSelect = True 'Permet de choisir plusieurs fichiers à la fois
Selectionner_Fichiers = Application.GetOpenFilename(Filefilter:=sFiltre, Title:=sTitre, MultiSelect:=bMultiSelect)
End Function

J'ai joint 6 fichiers sources comme exemple et mon fichier récapitulatif pour aider a la compréhension du problème.

106essai.xlsm (20.21 Ko)

Bonjour

C'est une super macro mais mes connaissances en vba ne me permettent pas de l'adapter à mon besoin, pouvez-vous m'aider svp

Mon besoin :

j'ai plusieurs fichiers avec des données de B2 à B300 que je voudrais récupérer dans un autre fichier par colonne

le nom de la cellule D1 de chaque fichier devra s'inscrire en C2, D2, etc.. dans le fichier de compilation

Les données de chaque fichier qui sont en B2:B300 devront être copiées dans le fichier de compilation en C4:C304 pour le 1er fichier puis l'on incrément suivant le nombre de fichier, les données du fichier 2 seront collées en D4:D304, etc...

Je n'ai pas besoin de récupérer le nom de chaque fichier comme le fait la macro mais seulement les données.

Merci beaucoup pour votre aide

Bonne soirée

Rechercher des sujets similaires à "recuperer donnees fichiers"