Bonjour,
Je vous écris car je deviens ...fou
En effet j'ai eu en tête de créer une macro VBA utilisée sous Excel, que j'ai testée et qui fonctionne (cool).
Etant donné que cette macro doit simplifier la tâche de plusieurs personnes, j'ai voulu l'installer sur leurs différents postes (même OS, même office).
Chez certains ça fonctionne (youpi) chez d'autres non, et ça me sort une erreur que je ne comprend pas.
Je pars d'un fichier excel "temporaire" que j'enregistre sous le nom "brut" celui-ci va faire un prétraitement et va ouvrir un fichier excel "travail" afin de récolter les données et mettre en forme le résultat tout en enregistrant le fichier dont le nom dépend d'une variable donnée par "travail".
Pour simplifier, j'ai un fichier "temporaire" que j'enregistre sous le nom "brut" (histoire de pouvoir jongler avec mon fichier "travail" car il m'est impossible de savoir à l'avance le nom du fichier temporaire) j'ouvre et utilise le fichier "travail" afin de compléter le fichier "brut" et l'enregistrer avec le nom "résultat X" dont X dépend de la donnée transmise par l'utilisateur.
Je fini par supprimer le fichier "brut" et je ferme "travail" afin de garder en focus "résultat X"
Donc j'utilise des fonctions telles que Windows("nom_fichier").activate et Sheets("nom_feuille").select pour faire mon traitement et tout fonctionne bien... sauf pour 2 postes.
L'erreur que j'ai "l'indice n'appartient pas à la sélection" intervient quand je reprend le focus de "brut" après avoir fait le traitement dans "travail"
Windows("brut.xls").activate est surligné
Et je ne comprend pas car :
1. cela fonctionne sur d'autres postes
2. le fichier "brut.xls" est bien ouvert au moment de l'exécution de la macro
3. je ne vois aucun rapport avec un indice, je n'utilise pas de tableau ou quoique ce soit
bref, je ne fais que des "save" "open" "windows().activate" et sheet().activate et à la fin kill et close
________________
Période 1 : fichier 'temporaire' ouvert
Période 2 : fichier 'temporaire' enregistré comme "brut" -> traitement
Période 3 : fichiers "brut" et "travail" sont ouverts -> traitement
Période 4 : fichier "brut" enregistré comme "résultat X", fichier "travail" tjs ouvert
Période 5 : fichier "brut" supprimé, fichier "travail" fermé, fichier "résultat X" en focus
Partager