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. 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
  2. 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. Re,

      Pour cela il faudrait avoir tes classeurs pour adapter les codes
      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 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. 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. 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. 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