Code VBA : RechercheV à partir d fichiers Excel dans un repertoire

Bonjour,

Je dispose d'une liste exhaustive de comptes, desquels je veux ramené les soldes journaliers à partir d'un répertoire de fichiers excel respectant la même structure.

les soldes provenant d'un fichier donné doivent déposés sur une même colonne, le choix de la ligne est en foction de la correspondance du numéro du compte (Variable clé de la rechercheV)

Le code que j'utilise est le suivant. A son exécution je reçois un message d'erreur : l'indice n'appartient pas à la selection

Option Explicit

Sub Getter()

Dim Fso As Object, MonRepertoire As String

Dim f1 As Object

Dim i As Integer

Dim name As String

Dim k As Integer

Set Fso = CreateObject("Scripting.FileSystemObject")

MonRepertoire = "C:\Users\alaaeddine.bennani\Desktop\STAGE ECOULEMENT\HIST ECHANTILLON"

i = 8

For Each f1 In Fso.GetFolder(MonRepertoire).Files

Workbooks.Open f1

name = f1.name

ThisWorkbook.Sheets("Data").Cells(1, i) = Right(Left(name, 17), 8)

For k = 2 To 2760

With Sheets("Data")

.Range(Cells(k, i)).Value = WorksheetFunction.VLookup(.Range(Cells(2, i)).Value, _

Workbooks(name).Sheets(name).Range("B1:H4000"), 7, False)

End With

Next k

Workbooks(name).Close SaveChanges:=False

i = i + 1

Next f1

End Sub

Merci d'avance pour votre aide.

Bonjour,

si le but du jeu est de deviner sur quelle instruction tu reçois le message d'erreur, je parie pour celle-ci

With Sheets("Data")

Si c'est le cas, complète l'instruction ainsi

With Thisworkbook.Sheets("Data")

Bonjour h2so4, et merci pour ta réponse.

En remplaçant Sheets("Data") par Thisworkbook.Sheets("Data"), je reçois une nouvelle erreur :

"erreur définie par l'application ou par l'objet"

en fait, pour répondre à ta question, je ne sais pas comment détecter la source de l'erreur (le curseur se place à la fin du code)

Merci.

Bonjour,

quand tu reçois le message d'erreur, tu as l'option d'arrêter l'exécution ou d'entrer en mode débogage. Entre en mode débogage, l'instruction donnant l'erreur sera surlignée en jaune.

ceci dit, si je dois à nouveau parier, je dirais que l'erreur survient sur l'instruction

.Range(Cells(k, i)).Value = WorksheetFunction.VLookup(.Range(Cells(2, i)).Value, _
Workbooks(name).Sheets(name).Range("B1:H4000"), 7, False)

et la cause probable est qu'il n'y a pas de feuille nommée du contenu de la variable name dans le classeur dont le nom est contenu dans la variable name.

Rechercher des sujets similaires à "code vba recherchev partir fichiers repertoire"