Macro excel bloquee

toopey77 Messages postés 19 Statut Membre -  
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   -
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 ;)

A voir également:

10 réponses

Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
toopey77
 
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
toopey77
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toopey77
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Re,

Pour cela il faudrait avoir tes classeurs pour adapter les codes
0
toopey77
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Re, pour ma part je travaillerais sans lien Hypertexte, récupère les deux fichiers exemples avec les liens ci dessous.
change à ta guise le nom teste2 et clic sur le bouton

https://www.cjoint.com/?BIylRlEZp93

https://www.cjoint.com/?BIylRIBdDJG

si le bouton te géne on reverra le code
0
toopey77
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Pas très pratique mais bon si cela te convient c'est le principal

a+
0
gantz974 Messages postés 354 Statut Membre 31
 
Consulte l'aide d'Office.. LoL
-3