Qd je renomme le class excel, la macro ne fonctione plus [Résolu]

Signaler
Messages postés
95
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
-
Bonjour,
J'ai fait une macro qui permet d'ouvrir un fichier texte, copier son contenu et le copier dans une feuille du classeur appelé TORS-ANA qui est actif et d'où je lance la macro.
LE problème, si je veux renommer le classeur TORS-ANA, la macro ne fonctionnera plus car ds la macro est écrit le nom du classeur, voir ci-dessous :

Workbooks.OpenText fileName:= _
"C:\Program Files\ARMDW\TORSION\Samples\for excel\tors.TEG", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1))
Cells.Select
Selection.Copy
Windows("tors-ana.xls").Activate
Sheets("TEG").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows("tors.TEG").Activate
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Close
'

Comment puis-je faire pour que même si le nom du classeur change, la macro continue à fonctionner
MErci pour votre aide

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
Re,

Si ton excel est ouvert, je suppose qu il y a au moment de l'exécution plusieurs Classeurs d'ouvert.

Celui qui contient la macro et celui que tu ouvre.

Donc peu etre que tu peux essayer WorkBooks(1).Activate ou WorkBooks(2).Activate tout comme lorsque tu veux acceder a une feuille tu peux faire soit Sheets("Feuill1").activate ou Sheets(1).Activate c est a dire l'activer soit par le nom soit par sa place (son index) dans la collection Sheets.

(je sais pas si c est tres explicite mais bon...)

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 233 internautes nous ont dit merci ce mois-ci

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
Salut,

Au lieu de passer par le nom du classeur essaie de passer par son index: (pas tester) du style; Windows(1).Activate.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
95
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
28 août 2015

Salut,
J'ai essayé de remplacer Windows("tors-ana.xls").Activate par ActiveWorkbook.activate mais ça ne marche pas puisque le activeworkbook est le fichier texte!!
Qu'entends-tu par "passer par son index" ??


Merci


Georges
Messages postés
95
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
28 août 2015

Merci Julien,
Ca marche impec !!
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
Mais ne rien.

En revanche n'oublie pas d'appuyer sur le reponse acceptee du ou des post qui ont pu t'aider (c est la meilleure facon de me remercier )

Si tu l'as fait pendant l'écriture de ce message excuses moi

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
salut,

Une autre méthode est d'affecter ton fichier texte à une variable

comme ça, ta variable représente toujours ton fichier, même si tu modifie ce dernier.

Ex dim WBKText as workbook

set WBKTexte = workbooks.opentext ( .....)

ensuite pour activer tu n'as plus qu'à faire WBKTexte.activate

Voilà, rien de plus simple

+++