VBA: ouvrir des classeurs fermés fonction Indirect
amandinee31
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'utilise dans Excel la fonction indirect qui me permet de trouver des valeurs dans d'autres fichiers selon le nom des cellules (dans l'exemple ci-dessous en A7)
=RECHERCHEV(Data!$G$1;INDIRECT("'W:\XXX\Synthèse\["&A7&".xlsm]6 - Synthèse'!$E:$AG");18;FAUX)
Seulement le résultat me donne des #REF parce que les fichiers sont fermés!
J'ai plus de 700 fichiers en tout mais ils sont tous dans le même répertoire.
J'ai trouvé ce code sur internet mais j'ai toujours les #REF
Pouvez-vous m'aider je ne comprends pourquoi ça ne marche pas.
Merci pour votre aide, je débute en VBA.
J'utilise dans Excel la fonction indirect qui me permet de trouver des valeurs dans d'autres fichiers selon le nom des cellules (dans l'exemple ci-dessous en A7)
=RECHERCHEV(Data!$G$1;INDIRECT("'W:\XXX\Synthèse\["&A7&".xlsm]6 - Synthèse'!$E:$AG");18;FAUX)
Seulement le résultat me donne des #REF parce que les fichiers sont fermés!
J'ai plus de 700 fichiers en tout mais ils sont tous dans le même répertoire.
J'ai trouvé ce code sur internet mais j'ai toujours les #REF
Dim Repertoire As String, Fichier As String
Dim Wb As Workbook
Dim Ws As Worksheet
Dim i As Integer
Application.ScreenUpdating = False
'Définit la Première feuille du classeur contenant cette macro
'(pour recevoir les donnée extraites dans les autres classeurs).
Set Ws = ThisWorkbook.Worksheets(1)
'Définit le répertoire de recherche
Repertoire = "C:\Documents and Settings\mimi\dossier\"
'Spécifie la recherche pour le fichiers .xls
Fichier = Dir(Repertoire & "*.xls")
'Boucle sur les fichiers du répertoire
Do While Fichier <> ""
'Vérifie que le nom du classeur est différent du classeur
'contenant cette macro (dans le cas ou il serait placé dans le même répertoire).
If ThisWorkbook.Name <> Fichier Then
'Ouvre chaque classeur
Set Wb = Workbooks.Open(Repertoire & Fichier)
'Referme le classeur
Wb.Close False
End If
Fichier = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Terminé"
Pouvez-vous m'aider je ne comprends pourquoi ça ne marche pas.
Merci pour votre aide, je débute en VBA.
A voir également:
- VBA: ouvrir des classeurs fermés fonction Indirect
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
Merci pour votre réponse en effet ce sont des fichiers xlsm.
J'ai modifié la macro mais depuis elle tourne en boucle et ne s'arrête pas je suppose qu'elle ouvre les 700 fichiers à la suite les uns des autres et qu'elle va prendre des heures...
Y a t-il une autre solution pour aller plus vite?
Merci