XL 2010 [RESOLU] VBA: L'indice n'appartient pas à la sélection

mdidish

XLDnaute Junior
Bonjour

J'ai un classeur Excel qui contient une macro, enregistré sur un serveur. Une vingtaine de PC l'utilise sans problème.
Depuis quelques jours, un des utilisateurs a un problème (les autres l'utilisent sans problème), la macro plantant sur la ligne :

Workbooks("Base de données").Close True

L'erreur signalée étant : Erreur d'exécution '9': L'indice n'appartient pas à la sélection.
Le Classeur "Base de données" est un autre classeur ouvert dans le début de la macro.

Si j'ajoute ces lignes juste avant la ligne qui plante :
For i = 1 To Workbooks.Count
ActiveSheet.Cells(i, 1) = Workbooks(i).Name
Next i
le classeur "Base de données.xlsx" est bien signalé ouvert.

Il s'agit de Excel 2010 32bit, installé sur Windows 7 32 bit.
Quels réglages d'Excel / Windows ont pu être modifiés ?

Merci par avance pour votre aide.
Marc
 

mdidish

XLDnaute Junior
Bonjour Modeste
Merci pour ta réponse, mais j'ai oublié de préciser un point :
- la macro est dans un fichier modèle qui génère d'autres fichiers, avec les même macro, et on est actuellement à plus de 2.000 fichiers ;

Du coup j'aimerais plutôt trouver ce qui a changé dans Excel/Windows/? pour le remettre à la valeur initiale, et lui permettre d'ouvrir n'importe quel fichier avec les macro, plutôt que de modifier le script.
Marc
 

Modeste

XLDnaute Barbatruc
Re-bonjour,
Du coup j'aimerais plutôt trouver ce qui a changé dans Excel/Windows/? pour le remettre à la valeur initiale, et lui permettre d'ouvrir n'importe quel fichier avec les macro, plutôt que de modifier le script.
... mais un test sur la machine incriminée permettrait peut-être de cerner le problème (par exemple les extensions affichées sur cette machine et pas sur les autres?)
 

mdidish

XLDnaute Junior
BINGO!
Merci Modeste, c'est effectivement ce paramètre qui avait été modifié, c'est donc réglé !

Pour ma culture : ce paramètre (d'affichage ou non des extensions) peut-il être détecté lors de l'exécution d'une macro VBA ?
Merci encore
Marc
 

Modeste

XLDnaute Barbatruc
Re²,

Je ne sais si c'est le sens de ta question, mais tu peux ajouter, avant le .Close, un On Error Resume Next et vérifier ensuite le type d'erreur générée.
Ceci dit, il serait peut-être plus simple (à vérifier!) d'indiquer l'extension dans l'instruction .Close (même sur les machines où les extensions sont masquées, ça devrait fonctionner, me semble-t-il) ... dans les deux cas, cela suppose de modifier la macro (et avec ton histoire de 2000 fichiers, ça ne va sans doute pas te plaire! :D)
 

mdidish

XLDnaute Junior
ok merci pour ta réponse.
Je vais voir si en précisant l'extension ça marche aussi sur les machines qui n'affichent pas les extensions.
Dans ce cas je modifierai le fichier modèle, ça évitera une possible récidive sur les futurs fichiers.
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 928
Membres
103 045
dernier inscrit
AP78