L'indice n'appartient pas à la sélection

Bonjour à tous,

Je suis bloqué depuis plusieurs heures sur une question très basique et je ne vois pas d'où peut venir le problème :

Dans une macro plus longue et plus complexe, je déclare un autre Workbook dans lequel je veux transférer des données:

Dim MB As Workbook

Set MB = Workbooks("PROJET TB 11 2024 Mobilités.xlsm")

- Le nom du worbook est correct

- Ce workbook est déjà ouvert via la procédure VBA mais j'ai également essayé de désactiver la macro d'ouverture et de simplement le laisser ouvert "à côté" => sans effet

- Je déclare d'autres Workbooks dans cette même procédure, sans aucun problème.

D'où peut venir le problème s'il vous plaît ?
merci beaucoup,

Bonjour,

Comme vous l'avez remarqué, c'est bien une erreur du type "Excel ne trouve pas cet objet". Quelques pistes de solution :

Vous indiquez que vous ouvrez le fichier via macro. Vous savez que Workbooks.Open method (Excel) | Microsoft Learn renvoie le fichier ouvert.

Donc en écrivant

Set WB = Workbooks.Open("…")

Vous pouvez le récupérer. Pour trouver d'où vient l'erreur cependant, activez une feuille du classeur en question, et dans la fenetre immédiate entrez (puis validez avec entrée)

? ActiveWorkbook.Name

C'est la valeur renvoyée qu'il faut utiliser.

Bonjour,

Merci pour la réponse rapide.

En suivant votre consigne, j'ai une erreur 438 "propriété ou méthode non gérée par cet objet".

En revanche si je fais une MsgBox ActiveWorkbook.Name => je retrouve bien le nom que j'ai indiqué dès le début.

En testant avec Set = Workbooks.Open : j'ai un message d'erreur 'm'indiquant qu'Excel n'a pas trouvé le fichier en question

Bonjour,

Ce serait pratique si vous pouviez partager votre fichier et les macros. Je ne sais pas ce que vous avez réellement écrit, seulement les erreurs renvoyées. Ce n'est pas suffisant.

Bien évidemment dans Workbooks.Open() vous avez remplacé les "…" par le chemin du fichier en question ?

En attendant, la macro ci-dessous permet d'afficher le chemin d'accès à tous les classeurs ouverts. C'est ce chemin qu'il faut indiquer dans la procédure .Open.

Sub NomsWb()
  For Each wbk In Application.Workbooks
    Debug.Print wbk.FullName
  Next wbk
End Sub
Rechercher des sujets similaires à "indice appartient pas selection"