Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 19h05   #1
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 38
Points : 17
Points : 17
Par défaut Utiliser les macros de personal.xlsb

Bonjours à tous
j'aimerais savoir comment appeler une macro du classeur personnel de macros dans une macro d'un classeur lambda.

petite explication:
je fais souvent les mêmes choses mais dans des classeurs différents alors j'ai une petite bibliothèque de macros fonctions
exemple:
dans le personal.xlsb j'ai la fonction

Code :
1
2
3
Function Derli(Li, Col)
Derli = ActiveSheet.Cells(Li, Col).End(xlDown).Row
End Function
et dans le "Classeur1"par exemple je fais

Code :
1
2
3
Sub test()
x = Derli(1, 1)
End Sub
et ben j'ai un message d'erreur ! "sub ou function non définie" sur derli alors que dans le même module de personal.xlsb ça fonctionne
j'ai essayé de la passer en public function mais ça ne change rien
alors si quelqu'un vois la solution c'est cool merci
spookyz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 19h08   #2
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

en 1er as-tu bien regardé comment tu écris le nom de ta fonction dans les 2 cas ?

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 19h11   #3
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 38
Points : 17
Points : 17
Oui désolé c'est une petite erreur de frappe le probleme n'est pas la je vais corriger le post merci
spookyz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 19h39   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

oui, mais ça ne pardonne pas dans un code

sinon voir du côté de : Application.Run

Code :
Application.Run "NomDuClasseur.xlsb!NomDeLaMacro"
voir aussi : Programmer efficacement avec Excel en VBA http://bidou.developpez.com/tutoriels/ExcelVBA/

page 6

s'applique ici car le perso est par définition ouvert...

PS : attention syntaxe très sensible justement :
peut demander de préciser le module
si espaces dans le nom de classeur, entourer de simples quotes
Code :
  Application.Run "'NomDuClasseur.xlsb'!NomDeLaMacro"
cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 20h50   #5
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 38
Points : 17
Points : 17
Merci Didier je vais regarder tous ça
spookyz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h32   #6
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 38
Points : 17
Points : 17
Un grand merci a Didier et la page 6 du lien !
Pour ceux que cela pourrait intéresser
avec PERSONAL.XLSB Masqué ou Affiché
ma solution aura été:

Code :
x = Application.Run("PERSONAL.XLSB!Deli", 1, 1)
ATTENTION au quotes et au parenthèses pour les arguments
encore merci à tous
spookyz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h29.


 
 
 
 
Partenaires

Hébergement Web