Interactions génantes si ouverture de plusieurs fichiers

Lionel -  
 lionel -
Bonjour,
J'ai un souci lorsque j'ai plusieurs fichiers excel d'ouverts.
Exemple, à l'écran apparait le fichier 1, j'effectue une saisie dans n'importe quelle cellule. Cette saisie est prise en compte sur le fichier 2 !!!
Etrange n'est ce pas, quelqu'un aurait il déjà été confornté a cela.

Merci d'avance

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    sans doute une macro mal programmée.
    eric
    0
  2. Lionel
     
    Bonjour Eriiic,
    effectivement, il est fort probable que cela provienne de mes macros, qui sont pourtant toutes simples, mais comme je suis autodidacte sur le sujet, il y a certainement quelque chose que je ne fais pas convenablement, voici la ligne de commande:
    -------------------------------------
    Private Sub CommandButton45_Click()

    Unload UserForm4
    Workbooks.Open ("\\ANGSK011.fbrakes.com\Reporting\QMM\QMM5-Fournisseurs\Service_QMM5\Suivi_des_coûts_QMM5.xls")
    End Sub
    ----------------------------------------
    Si cela permet à certains d'entre vous de m'aider à solutionner le pb, cela m'arrangerai vraiment.

    Merci d'avance
    0
    1. Utilisateur anonyme
       
      Bonjour Lionel,

      Ta macro quitte (ferme) ton formulaire nommé « UserForm4 », puis ouvre
      ton fichier « Suivi_des_coûts_QMM5.xls » qui est sur ce chemin réseau :
      //ANGSK011.fbrakes.com\Reporting\QMM\QMM5-Fournisseurs\Service_QMM5

      Et regarde bien depuis quel classeur et quelle feuille tu lance cette macro,
      donc là où est ton bouton de commande nommé « CommandButton45 ».

      Cordialement.  😊
      0
      1. Lionel > Utilisateur anonyme
         
        Bonjour Albkan,
        Que me conseilles tu d'observer sur la feuille qui lance cette macro.
        Pour info, c'est une feuille comprenant des "userform" me permettant d'aller chercher différents documents en différents endroits

        Merci d'avance
        0
      2. Utilisateur anonyme > Lionel
         
         
        Non : je n'ai pas voulu te conseiller d'observer quelque chose sur la feuille qui
        contient ton bouton (et donc lance ta macro) ! Je voulais seulement que tu te
        dises : CommandButton45 est sur la feuille X du classeur Y, donc c'est que
        se fera l'action d'une macro en l'absence de références explicites. La suite
        te l'expliquera mieux :

        Je vais supposer que CommandButton45 est sur Feuil1 du classeur X.
        Donc quand tu cliques sur ton bouton de commande, ça lance ta macro
        CommandButton45_Click() et ça fait ce que je t'ai déjà décris ; c'était
        juste pour info, en espérant que ça aiderait à résoudre ton problème.

        Car l'action d'une macro se fait sur une feuille nommée explicitement
        d'un classeur nommé explicitement ; exemple :

        Workbooks("Classeur X").Worksheets("Feuil1").Range("D5") = 10
        met 10 dans la cellule D5 de la Feuille 1 du Classeur X.

        Mais en l'absence de ces précisions explicites, l'action de la macro
        se fera sur la feuille active du classeur actif ; exemple :

        Range("D5") = 10
        met 10 dans la cellule D5 de la feuille active du classeur actif.

        Je pense que ton problème vient de là, car dans ton énoncé de départ, tu as écris
        que ce que tu saisis dans le fichier 1 est pris en compte dans le fichier 2 ; pour moi,
        soit il s'agit d'une référence non explicite, soit il y a une macro événementielle qui
        capture ta saisie et la place dans ton fichier 2 (ce 2ème cas : en utilisant ou non
        une référence explicite). Mais comme je ne connais pas ton vrai fichier, ce sont
        juste des hypothèses.
         
        0
      3. Lionel > Utilisateur anonyme
         
        Merci Albkan pour tes explications.
        Tes explications sont logiques, je vais donc revoir mon petit programme en essayant de trouver la faille (remue méninges :) )
        Merci de ton aide, je vous tiendrai informé si je parviens à résoudre cette problématique.

        Bonne journée
        0
  3. Lionel
     
    Re-Bonjour,
    j'ai essayé en long, en large...mais tout va de travers !

    Pour faire simple, il faudrait que je puisse créer une ligne de commande VBA qui fasse "échap" sur la feuill1 (du fichier A) qui contient ma macro1 avant l'ouverture du fichier B contenant une autre macro2 dédiée à la feuill2

    Nota: j'ai comme l'impression que je me suis un peu compliqué la vie

    Merci d'avance.
    0
    1. Utilisateur anonyme
       
       
      Bonjour Lionel,

      D'abord une petite rectification :

      Dans ton message #2, tu as écris : « voici la ligne de commande : », puis tu as
      mis juste après ta Sub CommandButton45_Click() ; tu peux appeler une Sub
      « macro » ou « code VBA », mais pas « ligne de commande » !

      Si tu fais < Windows >< r > (r pour run) et que tu tapes « cmd », ça ouvre une
      fenêtre d'invite de commande, où tu peux taper des commandes DOS.

      Pour un raccourci fichier, la ligne qui est dans le champ Cible et qui lance un
      logiciel s'appelle « ligne de commande », à laquelle on peut ajouter des
      paramètres supplémentaires (selon l'application).

      Donc pour ton message #7, tu ne dois pas écrire « ligne de commande VBA »
      mais tu peux parler de « programme VBA », ou « code VBA », ou « macro ».

      ------------------------------------------------------

      Comme ta sub CommandButton45_Click() ne fait que fermer ton formulaire
      UserForm4 puis ouvrir un fichier, ce n'est pas à cause d'elle qu'une saisie sur
      fichier1 se fait sur fichier2 !

      Dans ton énoncé initial, tu as écris que pour ton fichier1, tu fais une saisie dans
      n'importe quelle cellule, mais sans préciser le nom de la feuille ! Comme je ne
      connais pas ton fichier, comment savoir s'il s'agit de "Feuil1" ou d'une autre ?

      Si c'est bien sur "Feuil1" que tu fais ta saisie, alors regardes le code de "Feuil1" :
      il y a peut-être une macro qui expliquera ton problème ?

      De toute façon, il faudrait que tu voies tous les emplacements possibles de
      code VBA jusqu'à trouver la macro responsable !

      Bonne chance !  😊
       
      0
      1. lionel > Utilisateur anonyme
         
        Bonjour Albkan,
        désolé pour mes formulations inadaptées (je suis autodidacte, mais cela n'excuse rien).

        Je ne vois vraiment pas d'où cela peut provenir.
        Merci d'avoir tenté de m'aider.

        Cordialement
        0