Extraire une cellule de plusieurs feuilles
Bonjour tous
J'ai choisis votre Forum pour vous solliciter un peu d'aide, car je ne trouve pas la solution avec mes moyens.
J'ai plus de 50 fichiers Excel dans un répertoire. Ces fichiers contiennent des montants. Le total de ces montants par feuille est toujours dans la même cellule (I7).
Je souahiterais avoir une feuille (Master) qui pourrait extraire la cellule I7 de ces 50 fichiers.
Exemple de nom de fichier: 16501108.XLS
le 1650 est la référence de l'entreprise (variable en fonction de l'entreprise)
11 est l'année
08 le mois.
Les 50 fichiers sont enregistrés sur un lecteur réseau dont le chemin est Q:\CLIENTS\2011\201108
Ce dernier répértoir varie selon le mois.
L'idée serait donc une feuille, où je définis le mois et l'année, et où j'exécute une macro qui va chercher la cellule i7 par fichier, en fonction d'une liste établie ...
J'ai essayé à l'aide de "RECHERCHEV"
=RECHERCHEV(A4;'Q:\CLIENTS\2011\201108\[16501108.XLS]16501108'!$C$1:$I$1;7;FAUX)
Le problème que j'ai lors de l'établissemen tde la macro, c'est que le chemin d'accès (que je recherche/remplace) se modifie et qu'il me demande quand même le chemin d'accès après coup.
Je suis dans l'impasse, et ne pense donc pas que mon approche soit la bonne.
Mais je suis certain de m'adresser à des cracks!
Je vous remercie par avance pour votre aide et vous souhaite une bonne journée en attendant.
zh001
Salut le forum
Technique de travail sur classeurs fermés.
'récupère dans une série de classeurs fermés (dans le même répertoire)
'les valeurs d'une plage et les écrit dans la feuille active
Sub LoopThruFiles()
'Ron De Bruin, mpep
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("c:\*.xls")
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address
GetValues "c:", FilesArray(LoopCounter), "Blad1", "a1:c10", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "\[" & FName & "]" & sName & "'!" & cellRange
.Value = .Value
End With
End SubMytå
Bonjour
Tout d'abord toute mes excuses pour ne pas avoir répondu plus tôt!
Merci pour la rapidité et l'efficacité de la réponse!
C'est parfait, exactement ce que je recherchais.
Après avoir adapté quelque peu un ou 2 paramètres c'est impeccable.
MERCI encore et bravo!