Problème VBA (code erreur 9)

Bonjour,

Suite à la création d'un fichier de suivi de personnel sous Excel, avec diverse macro de recherche de personnel, filtrage, etc., un des collègues de mon bureau (et lui seul), lors de l'utilisation du fichier, déclenche le code erreur 9, souvent lié à la ligne comprenant :

Workbooks("***** *****").Activate


Petite info : la plupart des chemins d'accès utilisés dans le code commençait par "T:". Je l'ai ai tous changé lorsque j'ai remarqué que ce même collègue n'avait pas ce chemin mais seulement le passage par réseau. Mais je ne pense pas que le chemin d'accès y soit pour quelque chose.

D'avance, merci.

Rémi.

4 réponses

  1. Bonjour,

    Est-ce que lorsque l'erreur survient le fichier à activer est ouvert ?
    0
    1. Bonjour Rémi,
      Je pense que tu dois indiquer le chemin complet
      du fichier réseau utilisé par ton collègue.  :)
      0
      1. Bonjour albkan,

        Non, au contraire le nom complet provoque l'erreur 9 !
        0
      2. @Patrice33740Bonjour Patrice,
        Je voulais dire d'utiliser le chemin complet pour l'ouverture du fichier.
        Ensuite, une fois ouvert, c'est donc le classeur actif ; et si Rémi va sur
        un autre classeur ouvert, il faut effectivement utiliser Activate en
        mettant uniquement le nom du classeur (sans le chemin).  :)
        0
      3. Ce qui provoque l'erreur c'est que le classeur désigné n'est pas ouvert !
        0
      4. @Patrice33740Oui, c'est pourquoi la 1ère phrase de mon message précédent indique
        à Rémi qu'il doit ouvrir son classeur en indiquant le chemin complet.
        0
      5. Il y aurait alors un message d'erreur au moment de l'ouverture du fichier !
        0
    2. Contributeur
      Pourquoi faire Workbooks.("...").Activate si tu n'as qu'un seul WorkBook ouvert?
      Peut-être faire ThisWorkbook.Activate, si tu veux vraiment faire Activate.
      0
      1. Car il arrive qu'on travaille avec plusieurs classeurs ouverts, et ça crée des interférences, faisant buggé le programme...
        0
      2. Contributeur
        Je suggère alors
        ThisWorkbook.Activate

        Ce serait beaucoup mieux d'assainir le code VBA et de supprimer tous les Activate. SI tu montres des extraits de ton code, nous pourrons probablement te conseiller.
        0
    3. « Car il arrive qu'on travaille avec plusieurs classeurs ouverts, et ça crée des interférences, faisant buggé le programme...»

      C'est pas les classeurs ouverts qui posent problème mais l'écriture du code qui ne tient pas compte de cette éventualité !

      Comme le dit yg_be (Bonjour et Bonne Année) il faut revoir ton code et l'assainir.
      0