Comment créer une macro (fonction) complémentaire en Excel 2016
10 réponses
Blaise
Bonjour =C3=A0 tous,
Voil=C3=A0 tr=C3=A8s tr=C3=A8s longtemps que je ne suis plus venu ici !
Voil=C3=A0 mon probl=C3=A8me :
J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'impor=
te quand sans devoir importer le module dans le quel est se trouve =C3=A0 c=
haque classeur que je cr=C3=A9e.
Je pensais qu'en la pla=C3=A7ant dans le classer/module personnel cela alla=
it fonctionner, mais non.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DanielCo
Bonjour, Normalement, ça fonctionne. Vérifie que ton classeur de macros personnelles est bien ouvert : Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur doit apparaître. Cordialement. Daniel
Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la plaçant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
Bonjour,
Normalement, ça fonctionne. Vérifie que ton classeur de macros
personnelles est bien ouvert :
Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur
doit apparaître.
Cordialement.
Daniel
Bonjour à tous,
Voilà très très longtemps que je ne suis plus venu ici !
Voilà mon problème :
J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA
n'importe quand sans devoir importer le module dans le quel est se
trouve à chaque classeur que je crée. Je pensais qu'en la plaçant
dans le classer/module personnel cela allait fonctionner, mais non.
Bonjour, Normalement, ça fonctionne. Vérifie que ton classeur de macros personnelles est bien ouvert : Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur doit apparaître. Cordialement. Daniel
Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la plaçant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
Blaise
Le dimanche 26 mars 2017 14:47:40 UTC+2, DanielCo a écrit :
Bonjour, Normalement, ça fonctionne. Vérifie que ton classeur de macros personnelles est bien ouvert : Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur doit apparaître. Cordialement. Daniel
Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la pla çant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne. Bien à toi
Le dimanche 26 mars 2017 14:47:40 UTC+2, DanielCo a écrit :
Bonjour,
Normalement, ça fonctionne. Vérifie que ton classeur de macros
personnelles est bien ouvert :
Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur
doit apparaître.
Cordialement.
Daniel
> Bonjour à tous,
>
> Voilà très très longtemps que je ne suis plus venu ici !
>
> Voilà mon problème :
>
> J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA
> n'importe quand sans devoir importer le module dans le quel est se
> trouve à chaque classeur que je crée. Je pensais qu'en la pla çant
> dans le classer/module personnel cela allait fonctionner, mais non.
>
> Merci d'avance,
> Blaise
Merci de ta réponse Daniel, mais je comprend pas.
Il n'y a pas de bouton Afficher dans l'onglet Affichage.
Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste)
D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne.
Le dimanche 26 mars 2017 14:47:40 UTC+2, DanielCo a écrit :
Bonjour, Normalement, ça fonctionne. Vérifie que ton classeur de macros personnelles est bien ouvert : Clique sur l'onglet Affichage, bouton Afficher. Le nom de ce classeur doit apparaître. Cordialement. Daniel
Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la pla çant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne. Bien à toi
Blaise
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne. Bien à toi
Merci de ta réponse Daniel, mais je comprend pas.
Il n'y a pas de bouton Afficher dans l'onglet Affichage.
Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste)
D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne.
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules , un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonct ionne. Bien à toi
DanielCo
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
Regarde ici :
http://www.cjoint.com/c/GCApcO6rSuv
A moins que tu sois sur Mac ?
Poste le code quui ne fonctionne pas.
Daniel
Merci de ta réponse Daniel, mais je comprend pas.
Il n'y a pas de bouton Afficher dans l'onglet Affichage.
Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux
modules, un pour les procédures et l'autre pour les fonctions.(Bien
qu'il n'y ait pour le moment d'une seule procédure et la seule
fonction que je teste) D'ailleurs, la procédure, appelée par un
raccourci clavier, fonctionne.
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
Blaise
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce mati n :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Sing le) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + Bor neInferieure End Function ===== Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bie n qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce mati n :)
Le classeur est bien chargé
Le code est tout simple :
Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Sing le) As Single
'retourne un nombre aléatoire entre les bornes
NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + Bor neInferieure
End Function
=====
Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public "
Blaise
Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici :
http://www.cjoint.com/c/GCApcO6rSuv
A moins que tu sois sur Mac ?
Poste le code quui ne fonctionne pas.
Daniel
> Merci de ta réponse Daniel, mais je comprend pas.
> Il n'y a pas de bouton Afficher dans l'onglet Affichage.
>
> Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux
> modules, un pour les procédures et l'autre pour les fonctions.(Bie n
> qu'il n'y ait pour le moment d'une seule procédure et la seule
> fonction que je teste) D'ailleurs, la procédure, appelée par un
> raccourci clavier, fonctionne.
>
> Bien à toi
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce mati n :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Sing le) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + Bor neInferieure End Function ===== Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bie n qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
MichD
Bonjour, Suppose que tu as une macro dans un "MODULE STANDARD" dans un fichier que tu as enregistré comme un fichier complémentaire (.xlam). Le fichier devrait s'enregistrer habituellement dans ce répertoire : C:UsersTonProfilAppDataRoamingMicrosoftAddInsTonFichier.xlam Pour que cette fonction soit effective dans les feuilles des autres classeurs que tu ouvres : À partir du menu Fichier d'Excel / Options / Compléments / Dans le bas de la page choisit dans la liste déroulante : "Compléments Excel" et dans la fenêtre ouvrante, tu dois cocher le nom du fichier utilisé comme "macro complémentaire". La fonction de la macro complémentaire sera fonctionnelle dans tous les classeurs Excel, aussi longtemps que tu ne décocheras pas cette option. MichD "Blaise" a écrit dans le message de groupe de discussion : Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la plaçant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
Bonjour,
Suppose que tu as une macro dans un "MODULE STANDARD" dans un fichier que tu as enregistré
comme un fichier complémentaire (.xlam). Le fichier devrait s'enregistrer habituellement dans
ce répertoire :
C:UsersTonProfilAppDataRoamingMicrosoftAddInsTonFichier.xlam
Pour que cette fonction soit effective dans les feuilles des autres classeurs que tu ouvres :
À partir du menu Fichier d'Excel / Options / Compléments /
Dans le bas de la page choisit dans la liste déroulante : "Compléments Excel"
et dans la fenêtre ouvrante, tu dois cocher le nom du fichier utilisé comme "macro
complémentaire".
La fonction de la macro complémentaire sera fonctionnelle dans tous les classeurs Excel, aussi
longtemps que tu ne décocheras pas cette option.
MichD
"Blaise" a écrit dans le message de groupe de discussion :
15efb7a3-0055-453a-b016-4c91bab3a67c@googlegroups.com...
Bonjour à tous,
Voilà très très longtemps que je ne suis plus venu ici !
Voilà mon problème :
J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir
importer le module dans le quel est se trouve à chaque classeur que je crée.
Je pensais qu'en la plaçant dans le classer/module personnel cela allait fonctionner, mais non.
Bonjour, Suppose que tu as une macro dans un "MODULE STANDARD" dans un fichier que tu as enregistré comme un fichier complémentaire (.xlam). Le fichier devrait s'enregistrer habituellement dans ce répertoire : C:UsersTonProfilAppDataRoamingMicrosoftAddInsTonFichier.xlam Pour que cette fonction soit effective dans les feuilles des autres classeurs que tu ouvres : À partir du menu Fichier d'Excel / Options / Compléments / Dans le bas de la page choisit dans la liste déroulante : "Compléments Excel" et dans la fenêtre ouvrante, tu dois cocher le nom du fichier utilisé comme "macro complémentaire". La fonction de la macro complémentaire sera fonctionnelle dans tous les classeurs Excel, aussi longtemps que tu ne décocheras pas cette option. MichD "Blaise" a écrit dans le message de groupe de discussion : Bonjour à tous, Voilà très très longtemps que je ne suis plus venu ici ! Voilà mon problème : J'ai une fonction Toto(a,b) que je voudrais pouvoir utiliser en VBA n'importe quand sans devoir importer le module dans le quel est se trouve à chaque classeur que je crée. Je pensais qu'en la plaçant dans le classer/module personnel cela allait fonctionner, mais non. Merci d'avance, Blaise
DanielCo
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois utiliser la syntaxe : =personal.xlsb!NbreAlea(...)
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois
utiliser la syntaxe :
=personal.xlsb!NbreAlea(...)
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce
matin :)
Le classeur est bien chargé
Le code est tout simple :
Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure
As Single) As Single 'retourne un nombre aléatoire entre les
bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) *
Rnd()) + BorneInferieure End Function
==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public "
Blaise
Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici :
http://www.cjoint.com/c/GCApcO6rSuv
A moins que tu sois sur Mac ?
Poste le code quui ne fonctionne pas.
Daniel
Merci de ta réponse Daniel, mais je comprend pas.
Il n'y a pas de bouton Afficher dans l'onglet Affichage.
Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux
modules, un pour les procédures et l'autre pour les fonctions.(Bien
qu'il n'y ait pour le moment d'une seule procédure et la seule
fonction que je teste) D'ailleurs, la procédure, appelée par un
raccourci clavier, fonctionne.
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois utiliser la syntaxe : =personal.xlsb!NbreAlea(...)
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
MichD
Pour complèter l'information sur ce sujet : Si tu veux utiliser (appeler) une fonction ou une procédure du fichier de macros complémentaires directement dans une procédure VBA d'un autre fichier VBA, A ) Lorsque tu crées ton classeur de macros complémentaires, dans la fenêtre VBA, fais un clic droit sur le projetVBA du classeur de macros complémentaires et choisis la commande "propriété "propriétés de " et donne un nom unique à ce projet et sauvegarde (enregistre le fichier). B ) Pour appeler en VBA les fonctions ou procédures directement dans un autre classeur en VBA, Dans ledit classeur où tu veux appeler la fonction ou la procédure, Barre des menus / outils / références / Si tu as déjà coché l'option dans le message précédent, regarde dans la liste, et tu devrais apercevoir le nom du projetVBA que tu lui as donné . Coche-le. Si "l'option" n'est pas cochée, tu dois utiliser le bouton parcourir de la fenêtre et dans la fenêtre de Windows explore, retrouver l'endroit où tu as placé ton fichier de macros complémentaires. ATTENTION : dans la fenêtre où tu recherches le fichier n'oublie pas de modifier dans le bas de la fenêtre, le type de fichier pour "Microsoft Excel files (-.xlsm, .xlam....). Double-clique sur le fichier en t'assurant qu'il est bien coché dans la fenêtre "ajouter une référence" avant de la fermer. Si tu n'as pas exécuter A (Nom particulier), tu vas pouvoir constater que tu as 2 fois le même projetVBA dans la liste et cela mélange Excel... et tu ne pourras pas appeler les fonctions ou procédures simplement pas leur nom. Tu pourras appeler la fonction ou procédure directement pas son nom simplement. Dans mon message précédent, après avoir coché l'option, tu peux appeler la fonction par son nom seulement. MichD
Pour complèter l'information sur ce sujet :
Si tu veux utiliser (appeler) une fonction ou une procédure du fichier de macros
complémentaires directement dans une procédure VBA d'un autre fichier VBA,
A ) Lorsque tu crées ton classeur de macros complémentaires, dans la fenêtre VBA, fais un
clic droit sur le projetVBA du classeur de macros complémentaires et choisis la commande
"propriété "propriétés de " et donne un nom unique à ce projet et sauvegarde (enregistre le
fichier).
B ) Pour appeler en VBA les fonctions ou procédures directement dans un autre classeur en VBA,
Dans ledit classeur où tu veux appeler la fonction ou la procédure, Barre des menus / outils /
références /
Si tu as déjà coché l'option dans le message précédent, regarde dans la liste, et tu devrais
apercevoir le nom du projetVBA que tu lui as donné . Coche-le. Si "l'option" n'est pas cochée,
tu dois utiliser le bouton parcourir de la fenêtre et dans la fenêtre de Windows explore,
retrouver l'endroit où tu as placé ton fichier de macros complémentaires. ATTENTION : dans la
fenêtre où tu recherches le fichier n'oublie pas de modifier dans le bas de la fenêtre, le
type de fichier pour "Microsoft Excel files (-.xlsm, .xlam....). Double-clique sur le fichier
en t'assurant qu'il est bien coché dans la fenêtre "ajouter une référence" avant de la fermer.
Si tu n'as pas exécuter A (Nom particulier), tu vas pouvoir constater que tu as 2 fois le même
projetVBA dans la liste et cela mélange Excel... et tu ne pourras pas appeler les fonctions ou
procédures simplement pas leur nom.
Tu pourras appeler la fonction ou procédure directement pas son nom simplement.
Dans mon message précédent, après avoir coché l'option, tu peux appeler la fonction par son nom
seulement.
Pour complèter l'information sur ce sujet : Si tu veux utiliser (appeler) une fonction ou une procédure du fichier de macros complémentaires directement dans une procédure VBA d'un autre fichier VBA, A ) Lorsque tu crées ton classeur de macros complémentaires, dans la fenêtre VBA, fais un clic droit sur le projetVBA du classeur de macros complémentaires et choisis la commande "propriété "propriétés de " et donne un nom unique à ce projet et sauvegarde (enregistre le fichier). B ) Pour appeler en VBA les fonctions ou procédures directement dans un autre classeur en VBA, Dans ledit classeur où tu veux appeler la fonction ou la procédure, Barre des menus / outils / références / Si tu as déjà coché l'option dans le message précédent, regarde dans la liste, et tu devrais apercevoir le nom du projetVBA que tu lui as donné . Coche-le. Si "l'option" n'est pas cochée, tu dois utiliser le bouton parcourir de la fenêtre et dans la fenêtre de Windows explore, retrouver l'endroit où tu as placé ton fichier de macros complémentaires. ATTENTION : dans la fenêtre où tu recherches le fichier n'oublie pas de modifier dans le bas de la fenêtre, le type de fichier pour "Microsoft Excel files (-.xlsm, .xlam....). Double-clique sur le fichier en t'assurant qu'il est bien coché dans la fenêtre "ajouter une référence" avant de la fermer. Si tu n'as pas exécuter A (Nom particulier), tu vas pouvoir constater que tu as 2 fois le même projetVBA dans la liste et cela mélange Excel... et tu ne pourras pas appeler les fonctions ou procédures simplement pas leur nom. Tu pourras appeler la fonction ou procédure directement pas son nom simplement. Dans mon message précédent, après avoir coché l'option, tu peux appeler la fonction par son nom seulement. MichD
Blaise
Merci Daniel, J'avais oublié cet aspect. Bien à toi, Blaise Le dimanche 26 mars 2017 18:58:36 UTC+2, DanielCo a écrit :
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois utiliser la syntaxe : =personal.xlsb!NbreAlea(...)
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ===== Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Pub lic " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(B ien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée pa r un raccourci clavier, fonctionne. Bien à toi
Merci Daniel,
J'avais oublié cet aspect.
Bien à toi,
Blaise
Le dimanche 26 mars 2017 18:58:36 UTC+2, DanielCo a écrit :
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois
utiliser la syntaxe :
=personal.xlsb!NbreAlea(...)
> Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce
> matin :)
>
> Le classeur est bien chargé
>
> Le code est tout simple :
>
> Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure
> As Single) As Single 'retourne un nombre aléatoire entre les
> bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) *
> Rnd()) + BorneInferieure End Function
>
> =====
> Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Pub lic "
>
> Blaise
>
> Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
>> Regarde ici :
>> http://www.cjoint.com/c/GCApcO6rSuv
>> A moins que tu sois sur Mac ?
>> Poste le code quui ne fonctionne pas.
>> Daniel
>>
>>> Merci de ta réponse Daniel, mais je comprend pas.
>>> Il n'y a pas de bouton Afficher dans l'onglet Affichage.
>>>
>>> Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux
>>> modules, un pour les procédures et l'autre pour les fonctions.(B ien
>>> qu'il n'y ait pour le moment d'une seule procédure et la seule
>>> fonction que je teste) D'ailleurs, la procédure, appelée pa r un
>>> raccourci clavier, fonctionne.
>>>
>>> Bien à toi
Merci Daniel, J'avais oublié cet aspect. Bien à toi, Blaise Le dimanche 26 mars 2017 18:58:36 UTC+2, DanielCo a écrit :
Si tu as mis ta fonction dans personal.xlsb, pour l'utiliser, tu dois utiliser la syntaxe : =personal.xlsb!NbreAlea(...)
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ===== Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Pub lic " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(B ien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée pa r un raccourci clavier, fonctionne. Bien à toi
JièL
Hello, pour info : depuis 2010 au moins il existe la fonction ALEA.ENTRE.BORNES(mini;maxi) c'est peut-être pas la peine de la récréer ;-) -- JièL Alea jacta est Le 26/03/2017 à 18:12, Blaise a écrit :
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi
Hello,
pour info : depuis 2010 au moins il existe la fonction
ALEA.ENTRE.BORNES(mini;maxi)
c'est peut-être pas la peine de la récréer ;-)
--
JièL Alea jacta est
Le 26/03/2017 à 18:12, Blaise a écrit :
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :)
Le classeur est bien chargé
Le code est tout simple :
Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single
'retourne un nombre aléatoire entre les bornes
NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure
End Function
==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public "
Blaise
Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici :
http://www.cjoint.com/c/GCApcO6rSuv
A moins que tu sois sur Mac ?
Poste le code quui ne fonctionne pas.
Daniel
Merci de ta réponse Daniel, mais je comprend pas.
Il n'y a pas de bouton Afficher dans l'onglet Affichage.
Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux
modules, un pour les procédures et l'autre pour les fonctions.(Bien
qu'il n'y ait pour le moment d'une seule procédure et la seule
fonction que je teste) D'ailleurs, la procédure, appelée par un
raccourci clavier, fonctionne.
Hello, pour info : depuis 2010 au moins il existe la fonction ALEA.ENTRE.BORNES(mini;maxi) c'est peut-être pas la peine de la récréer ;-) -- JièL Alea jacta est Le 26/03/2017 à 18:12, Blaise a écrit :
Au temps pour moi, j'ai pourtant nettoyé mes verres de lunette ce matin :) Le classeur est bien chargé Le code est tout simple : Public Function NbreAlea(BorneInferieure As Single, BorneSuperieure As Single) As Single 'retourne un nombre aléatoire entre les bornes NbreAlea = Int((BorneSuperieure - BorneInferieure + 1) * Rnd()) + BorneInferieure End Function ==== > Comme cela ne fonctionnait pas, j'ai ajouté moi-même le " Public " Blaise Le dimanche 26 mars 2017 17:05:44 UTC+2, DanielCo a écrit :
Regarde ici : http://www.cjoint.com/c/GCApcO6rSuv A moins que tu sois sur Mac ? Poste le code quui ne fonctionne pas. Daniel
Merci de ta réponse Daniel, mais je comprend pas. Il n'y a pas de bouton Afficher dans l'onglet Affichage. Je vois très bien dans l'IDE PERSONNAL.XSLB et dedans mes deux modules, un pour les procédures et l'autre pour les fonctions.(Bien qu'il n'y ait pour le moment d'une seule procédure et la seule fonction que je teste) D'ailleurs, la procédure, appelée par un raccourci clavier, fonctionne. Bien à toi