vba: appel de procédure à partir d'un autre fichier

bernaroff

XLDnaute Junior
coucou tout le monde
J'ai un gros problème, j'ai créer une procédure qui appel un fichier .txt et qui rassemble et analyse les donées de ce .txt dans un nouveau fihier excel. Seulement dans la macro d'origine, j'ai une procédure qui fait intervenir le fichier excel créé.
Ce que je souhaite faire c'est pouvoir lancer cette dernière procédure dans le nouveau fichier excel sans avoir à rajouter à chaque fois la nouvelle procédure dans le excel dernièrement créé.

Je me demandé si il était possible de créer un bouton dans la procédure d'origine qui s'afficherait dans le nouveau fichier mais qui lancerait la procédure présente dans la macro d'origine, ou de mettre une ligne de code (quelque part dans la macro d'origine) qui lancerait la dernière procédure une fois le nouveau fichier créé dns le nouveau fichier créé.

Je sais pas si je suis clair, mais si quelqu'un pouvait m'aider, ça me débloquerait grandement.

Cdt
Bernaroff
 

bernaroff

XLDnaute Junior
Re : vba: appel de procédure à partir d'un autre fichier

Merci pour ton aide, malheureusement j'avais déjà vu ce post, et il ne marche pas, et ce n'est pas non plus exactement ce que je souhaite faire
peut être est-il possible dans une procédure d'ouvrir un des modules dans le fichier excel qui est créé à partir du .txt sans avoir à toucher à ce fameux fichier créé ?

J'ai mon fichier Cdc reader_2.0 mais qui n'affiche rien (ce n'est pas son but) en ouverture il demande de lancer un fichier .txt et il transmet les données dans un fichier excel qui se créé (dont le nom change en fonction du .txt). Seulement un de mes modules de Cdc reader2.0 doit se lancer tout seul mais sur le fichier excel créé en utilisant les données du excel créé.

Je sais pas si c'est possible mais il me semble qu'on peut tout faire avec excel donc je perds pas espoir que quelqu'un aie la réponse.

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : vba: appel de procédure à partir d'un autre fichier

Bonjour bernaroff, cc:)

pas tout compris, à priori pas de macro présente dans un fichier texte.... regarde ceci, à partir d'une macro contenue dans le classeur x lance une macro nommée "test" dans le classeur nommé "classeur1.xls", les 2 classeurs doivent être ouverts ...
Code:
Application.Run "classeur1.xls!test"

bonne journée
@+
 

bernaroff

XLDnaute Junior
Re : vba: appel de procédure à partir d'un autre fichier

Bonjour Pierrot 93
où places tu cette commende? au début de la procédure test, dans ThisWorkBook, ou dans une autre procédure. Je pense que c'est ce dont j'ai besoin, mais comment faire si le nom du classeur1 change à chaque ouverture ?

merci
 

Pierrot93

XLDnaute Barbatruc
Re : vba: appel de procédure à partir d'un autre fichier

Re,

où places tu cette commende?
Au moment ou tu veux la lancer !!! A priori à placer dans un module standard... A voir selon ton projet...
mais comment faire si le nom du classeur1 change à chaque ouverture ?

peut être comme ceci :
Code:
Application.Run ActiveWorkbook.Name & "!test"
ou bien en utilisant "workbooks", sans plus de détails.... difficile à dire...
 

bernaroff

XLDnaute Junior
Re : vba: appel de procédure à partir d'un autre fichier

merci beaucoup, c'est exactement ce que je voulais, mais il me manque encore une petite chose, désolé, comment faire pour que le classeur ouvert (classeur 1 dans l'exemple) soit le classeur actif pour la macro ??
(problème avec les appels comme Feuil2 etc...)
 

bernaroff

XLDnaute Junior
Re : vba: appel de procédure à partir d'un autre fichier

en fait l'erreur vient de ça :
erreur 424 objet requis

For nbcells = 2 To 750
If Not IsEmpty(Feuil2.Cells(nbcells, 1).Value) Then (sur cette ligne)
m = m + 1
End If
Next nbcells

ça correspond à quoi exactement comme erreur puisque la programmation de cette commande me paraît juste
et en effet le classeur en activité est le bon puisque le début s'exécute bien dans le bon classeur
merci pour ton aide
 

Pierrot93

XLDnaute Barbatruc
Re : vba: appel de procédure à partir d'un autre fichier

Re,

Alors il faut ptrésicer le nom de la feuille et éventuellement le classeur si ce n'est pas celui actif :
Code:
If Not IsEmpty(Workbooks("nomclasseur.xls").Sheets("NomFeuille").Cells(nbcells, 1).Value) Then (sur cette ligne)

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 469
Messages
2 088 696
Membres
103 922
dernier inscrit
hhhh