Appeler les macros d'un module

M

Médéric

Guest
Bonjour!

Voila ca fait un bon moment que j'ai pas touché excel et je suis bêtement bloqué sur un truc qui va sans doute vous paraitre ridicule!

J'ai un ensemble de macros et fonctions (évenementielles et générales) qui servent à faire tourner des calculs de coût de transport...

Jusqu'à aujourd'hui je codais dans ma feuille et dupliquais donc le code à chaque copie de la feuille (pour commencer un nouveau mois ou changer de fournisseur) ce qui alourdit pas mal mes feuilles.

J'essaie donc de regrouper les macros générales dans un module (alors je sais pas si je dois créer un module dans le fichier ou un module général), pour appeler depuis chaque feuille la macro principale de ce module (qui se charge de faire tourner toutes les autres ensuite).

Et je ne sais pas comment on appelle cette macro 'à distance' depuis mes feuilles de travail! :eek:

Merci pour vos eclaircissements!

Médéric
 
M

Mederic

Guest
Merci pascal pour ta rapide réponse,

en fait j'aurais dû préciser que justement je faisais
Call macro1
et que ca ne marchait pas.

Mais si tu dis que ca suffit à appeler une macro quelque soit son emplacement, c'est que mon problème vient d'ailleurs..

En fait il m'affiche l'erreur : 'il a été detecté un nom ambigu: Calcul_Cout' (traduit de l'espagnol :lol: )
Ma macro1 s'appelle 'Calcul_cout' en fait.

et je ne sais pas à quoi est dû ce message..
 
M

Mederic

Guest
Malgré tout j'ai toujours un pb qui subsiste!

Comme je disais dans le post original, au début j'avais tout le code dans chaue feuille.

Maintenant j'ai mis les macros evenementielles dans le ThisWorkBook et les autres dans un module (moduleperso1).

Et apparemment quand j'appelle la macro qui génère mon prog
(Call Calcul_Cout) il me sort :
'Erreur de compilation, Sub ou Fonction non défini'

Alors qu'elles sont bien définies dans mon rep moduleperso1.

Je vois pas ce qui manque.. :S

Merci.. :unsure:
 
M

Mederic

Guest
C'est donc un fichier qui sert à calculer les couts de transport en fonction
de la DESTInation, du POIDS et du TRANSPorteur.

Le principe est de construire la chaine de caractere - adresse de la cellule où se trouve le bon prix (qui se trouve dans un autre fichier sous forme de grilles).

Comme tu n'as pas se fichier tu ne pourras pas tester le programme dans son ensemble mais l'idée c'est d'au moins arrivée au MsgBox qui dit que les données sont pas bonnes (pour ne pas avoir trouvé le fichier).

Merci Pascal. :)
 
M

Mederic

Guest
52 ko.. misere [file name=SALIDAS2005_20051117131753.zip size=33577]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SALIDAS2005_20051117131753.zip[/file]
 

Pièces jointes

  • SALIDAS2005_20051117131753.zip
    32.8 KB · Affichages: 61

Dan

XLDnaute Barbatruc
Bonjour Mederic,

Ben au vu de ton fichier le pb est simple. Dans ta macro, 'Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)' , tu fais appel à une macro 'calcul_cout qui n'existe pas.

Si tu n'as pas placé ton fichie entier ici, vérifie que le nom de ta macro Calcul_cout est bien correct. Ex : calculcout ou calcul cout.
On le répete souvent mais d'une manière générale, évite les espaces, _, -. Cela te permet de ne pas les oublier s'il sont mentionnés ailleurs dans ton programme.

Si pb n'hésite pas.

;)
 
M

Mederic

Guest
A force de polluer le forum, j'ai découvert que mon erreur de compilation n'avait pas lieu quand je plaçais mes macros dans un module du fichier..

Par contre si je les mets dans un module des 'modules persos', alors la ça ne marche pas.

Ca suppose que je suis obligé de copier mon code au moins une fois dans un module de chaque fichier?

Ou y a moyen d'avoir une seule fois mes macros generales en les appelant différemment dans un module perso?
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

dis il ya un problème tu déclares ta variable trow en string alors que c'est un numéro de ligne
il faut le declarer en integer et ta première ligne remplacer
If TROW <> '' Then

par
If TROW <> 0 Then

Message édité par: Pascal76, à: 17/11/2005 13:28
 
M

Mederic

Guest
Merci Dan, en fait c'est le 2eme fichier qui comporte bien le module avec Calcul_cout (le module a sauté à cause d'un plantage excel au moment ou je le déplacais de 'modules persos' à modules du fichier)

Et en fait maintenant ca marche :lol:

Mais j'aimerais savoir si ca peut marcher aussi avec Calcul_cout placé dans un module perso unique.

Médéric
 

Discussions similaires

Réponses
1
Affichages
311