Excel et Perso.xls

Lucas -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je suis confronté à un petit problème sous excel, et malgré mes nombreuses recherches, je reste sans réponse.

Mes questions sont les suivantes :

Comment appeler une macro ou une fonction écrite dans "PERSO.XLS" depuis un module normal?

Où doit-on écrire la macro ou la fonction (module, module de classe, thisworkbook) dans le classeur PERSO.XLS pour l'appeler d'un module1 d'un classeur1 quelconque?

Quel doit être la porté des variables et de la fonction ou du sub dans le PERSO.XLS pour pourvoir les retrouver dans un classeur quelconque?

Par avance merci, Lucas.
A voir également:

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Pour ne pas réinventer l'eau tiède, je te propose de regarder une série de réponses à ce sujet sur :

http://www.excelabo.net/excel/fichiersparticulier.php#normal

N'oublies pas de descendre dans la page et si tu as des interrogations supplémentaires, n'hésites pas.
0
Lucas
 
Bonjour,

Merci de votre réponse, mais j'ai déjà visité cette page.

Et c'est cette phrase que je ne comprends pas :
"Sauf que...il faut utiliser la syntaxe =perso.xls!maFonction(paramètres...). "

Lorsque j'écrit cela dans une macro excel j'ai une "erreur d'exécution 424" "Objet requis"

Donc , aurriez-vous l'aimabilité de coller ici un exemple avec :

- la fonction ou macro dans le classeur perso.xls (et dans quel module, classe ou normal?)

- la macro qui appelle ce programme dans un classeur quelconque

avec les déclarations.

Par avance, merci, cordialement, Lucas.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Lorsque j'écrit cela (=perso.xls!maFonction(paramètres...). )dans une macro excel j'ai une "erreur d'exécution 424" "Objet requis"

Cela ne vient pas de la façon d'écrire l'appel de ta fonction mais de l'écriture de ta fonction.

Par exemple, l'objet requis peut être la qualification de la feuille concernée qui ne peut être déduite du code de ta fonction.

Si tu écris par exemple cette fonction (qui ne sert à rien !) dans perso.xls, dans un module normal
Public Function madate()
    madate = Format(Date, "dddd d mmmm yyyy")
End Function

tu peux très bien mettre dans n'importe qu'elle feuille : =perso.xls!madate()
et cela fonctionnera correctement.

Donc il faut regarder la ligne en erreur dans ta fonction (avec le pas à pas éventuellement) et ajouter la qualification d'objet qui manque.
0