Qd je renomme le class excel, la macro ne fonctione plus

Résolu
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015 - 30 mars 2006 à 10:20
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

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 mars 2006 à 11:02
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
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 mars 2006 à 10:35
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
0
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015
30 mars 2006 à 10:47
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
0
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015
30 mars 2006 à 11:13
Merci Julien,
Ca marche impec !!
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 mars 2006 à 11:21
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
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
31 mars 2006 à 09:59
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

+++
0
Rejoignez-nous