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

Messages postés
95
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
28 août 2015
- - Dernière réponse : kalobit
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
- 31 mars 2006 à 09:59
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
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
3
Merci
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

Dire « Merci » 3

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

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

Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
0
Merci
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
0
Merci
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
0
Merci
Merci Julien,
Ca marche impec !!
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
0
Merci
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
0
Merci
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

+++