Macro excel bloquee

Bonjour a tous,

Alors voila mon probleme, j'ai cree un fichier qui vient alimenter un autre a l'aide d'une macro.

La macro ouvre un fichier annexe (2) colle les infos importantes l'enregistre et le ferme. Pour ensuite revenir sur le fichier initial (1).

Mon probleme est que le fichier initial doit etre constamment renomme.

Et cela bloque la macro qui ne retrouve pas le fichier 1. Auriez vous une solution?

Merci de votre aide ;)

10 réponses

  1. Consulte l'aide d'Office.. LoL
    -3
    1. Salut,

      Tu peux récupérer le nom du fichier dans une cellule et dans ton code tu fais référence à cette cellule.

      exemple tu nommes le cellule A1 titi
      dans cette cellule tu colles cette formule qui récupéreras le nom du classeur
      =STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)

      ou si tu veux faire tout VBA

      [A1] = ThisWorkbook.Name

      reste plus que modifier ton code en remplaçant le nom du fichier à ouvrir par la référence de la cellule nommée titi
      1
      1. Je suis entrain d'essayer ta technique comment nommer ma cellule titi?

        Le code ressort bien le nom du doc c impeccable mais je me demande comment faire reference a cette cellule pour reouvrir ce classeur
        0
        1. voilà un exemple de ma macro :

          Application.Run "enregistrementP"
          Range("F27").Select
          Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
          Windows("teste2.xls").Activate

          Sheets("FICHE PARTENAIRE").Select
          Rows("7:8").Select
          Selection.Copy
          Windows("éléments partenaires.xls").Activate
          Rows("15:15").Select
          Selection.Insert Shift:=xlDown

          Windows("teste2.xls").Activate
          Sheets("FICHE PARTENAIRE").Select
          Range("B7:F8").Select
          Selection.Copy

          A chaque Windows ("teste2.xls").Activate ma macro plante (logique si le fichier a changer de nom ;)

          Comment à partir de cela formuler ma macro pour ne plus etre bloqué par un changement de nom du classeur?

          Merci beaucoup
          0
          1. Re,

            pour nommer la cellule contenant le nomdu fichier, active la cellule et au dessus des en tête de colonne à gauche tu as la barre d'adresse, il suffit de faire un clic et saisir le nom que tu souhaites donner à la cellule et Entrée
            ou tu va dans le gestionnaire des noms et Définir

            ensuite pour ouvrir le fichie il faut passer par leVBA et si le fichier à ouvrir est dans le même répertoire le code est

            Workbooks.Open Filename:=ThisWorkbook.Path & "\" & [titi].Value
            0
            1. Merci Mike-31

              J'ai bien réussi à trouvé comment nommer une cellule.

              Cependant le code pour activer le classeur ne fonctionne pas.
              le msg d'erreur me dit que le classeur comporte des liaisons vers un autre classeur.

              Pourrais tu modifier ma macro tel qu'il me faut la renseigner?

              (le classeur a réactiver n'est pas fermer je passe de l'un à l'autre)
              0
              1. Re,

                Pour cela il faudrait avoir tes classeurs pour adapter les codes
                0
                1. ok Mike super ;)

                  C'est pas compliqué j'ai un classeur qui se nomme "ELEMENTS PARTENAIRES.xls" dont le nom ne change jamais.

                  et un fichier nommé teste2.xls dont le nom change tout le temps.

                  A partir de teste2.xls je lance une macro nommée "enregistrementP" puis j'ouvre le classeur "ELEMENTS PARTENAIRES" à partir d'un lien hypertexte et là je reviens sur le classeur teste2.xls ...

                  mais comme il change constamment de nom, ma macro ne le trouve pas...

                  Application.Run "enregistrementP"
                  Range("F27").Select
                  Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
                  Windows("teste2.xls").Activate

                  Si tu pouvais me débloquer ce serait vraiment super ;)
                  0
                  1. Merci Mike-31,

                    J'ai trouvé une solution qui semble fonctionner je te la donnes au cas où:

                    en début de macro je détermine le nom du classeur ouvert

                    Dim ClasseurActif As String
                    ClasseurActif = ThisWorkbook.Name

                    puis lorsque j'ai besoin de le rappeler je le nomme par ce nom:

                    Workbooks(ClasseurActif).Activate

                    de cette façon qu'importe le nom qui sera entrer la macro l'associera tjr au même nom ;)

                    Pour le moment tout fonctionne ;D

                    Merci pour tout
                    0
                    1. Pas très pratique mais bon si cela te convient c'est le principal

                      a+
                      0