Macro excel bloquee

Fermé
toopey77 Messages postés 18 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 18 mai 2016 - 21 sept. 2012 à 10:02
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 - 24 sept. 2012 à 14:16
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
21 sept. 2012 à 10:22
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
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
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 sept. 2012 à 10:19
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
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 sept. 2012 à 10:54
Re,

Pour cela il faudrait avoir tes classeurs pour adapter les codes
0
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 sept. 2012 à 11:44
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
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 sept. 2012 à 14:16
Pas très pratique mais bon si cela te convient c'est le principal

a+
0
gantz974 Messages postés 323 Date d'inscription mardi 28 août 2012 Statut Membre Dernière intervention 16 novembre 2013 31
21 sept. 2012 à 10:04
Consulte l'aide d'Office.. LoL
-3