Macro complementaires et MacroOptions

stonech

XLDnaute Nouveau
Bonjour à tous et merci d'avance pour votre aide,

j ai créé un fichier .Xlsm avec pour décrire des fonctions et les paramètres .

Y a 2 onglets sur le fichier :
onglet 1 : sub auto_open() qui fait appel a toutes mes fonctions de description + les fonctions
onglet 2: Mes fonctions de description

Jusque la mon fichier fonctionne très bien.

L'étape suivante est que je veux qu'a chaque fois que j ouvre excel ce descriptif soit disponible. Donc j'enregistre mon fichier en xlma (macro complémentaire). Et la a chaque fois que j'ouvre le fichier macro complémentaire, ça me met le message d'erreur : "Erreur d'execution 1004 : impossible de modifier une macro dans un classeur masqué. Afficher le classeur en utilisant la fonction afficher"

Lorsque je clique sur débogage y a cette partie du code qui est en jaune :

Application.MacroOptions _
Macro:=funcName, _
Description:=funcDesc, _
category:=categorie, _
ArgumentDescriptions:=ArgDesc

(funcName, funcDesc, categorie et ArgDesc sont bien defini).

Si quelqu un sait pourquoi ça ne marche en macro complémentaire Merci d'avance pour votre aide.

Aussi si je ne clique pas sur débogage mais sur fin, mon programme fonctionne très bien mais c'est désagréable a chaque fois que j ouvre un fichier excel d avoir le message d'erreur.
 

Fichiers joints

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Bonjour,

impossible de modifier une macro dans un classeur masqué. Afficher le classeur en utilisant la fonction afficher"
affiche le classeur en question le temps de l'execution du code...

bon après midi
@+
 

stonech

XLDnaute Nouveau
Re : Macro complementaires et MacroOptions

Merci pierrot mais il me faut plus de détail ou m 'expliquer comment on fait ca ^^
 

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Re,

essaie avec ceci :
Code:
ThisWorkbook.IsAddin = False
'ton code
ThisWorkbook.IsAddin = True
 

stonech

XLDnaute Nouveau
Re : Macro complementaires et MacroOptions

Merci pierrot donc la on a réglé le problème du message d'erreur.... seulement ça a généré un autre souci :

a chaque fonction que je fais appel à une de mes fonctions sur un fichier excel "classique" et que je ferme mon fichier excel, il me demande d'enregistrer les modifications sur mon fichier excel mais aussi sur mon fichier xlma (macro complémentaire) ce qui est pas normal.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Re,

ce qui est pas normal.
si puisque tu as modifié le xlam... modifie peut être comme ceci :

Code:
ThisWorkbook.IsAddin = False
'ton code
With ThisWorkbook
    .IsAddin = True
    .Saved = True
End With
 

stonech

XLDnaute Nouveau
Re : Macro complementaires et MacroOptions

Voila comment mon fichier est construit :

Descrition fonction1()

ThisWorkbook.IsAddin = False
'ton code
ThisWorkbook.IsAddin = True
end function

description fonction2() idem avant

et cela se répète 10 fois pour toutes mes fonctions... faut que je rajoute le .save sur toutes??? y a pas un moyen rapide ou générale de le faire???

dans mon programme j ai une fonction auto-open() c'est pas mieux de rajouter dessus les ligne de code que tu m'as donné et ca donnerai ca :

sub auto_open()
ThisWorkbook.IsAddin = False
Call description_fonction1()
....
call description_fonction10()

With ThisWorkbook
.IsAddin = True
.Saved = True
End With

Voir une autre solution s'il y a mieux

Désole pour toutes ces questions mais merci infiniment pour ton aide et ton temps
 

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Re,

dans mon programme j ai une fonction auto-open()
bah... tu peux essayer, mais tu vas avoir le souci à chaque "Application.MacroOptions "... A voir s'il est nécessaire de l'avoir 10 fois.... et est ce vraiment utile d'utiliser une fonction plutôt qu'une "sub"....
 

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Re,

peut être en placant ceci dans le module "thisworkbook" :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True
End Sub
 

stonech

XLDnaute Nouveau
Re : Macro complementaires et MacroOptions

C'est bon ca marche dans ma procédure auto_open()

Merci infiniment Pierrot pour ton aide. Maintenant si je pouvais avoir un peu de théorie sur la résolution du problème original. Pourquoi avec le passage de mon fichier en xlma j ai du rajouter les ligne de code sur le isaddin??? qu'est ce qui cloche avec le Application.macroOptions pour avoir a rajouter ces lignes???

Merci :)
 

Pierrot93

XLDnaute Barbatruc
Re : Macro complementaires et MacroOptions

Re,

le "isaddin" à "false" permet d'afficher ton classeur et le considérer comme un classeur ordinaire, ce qui permet à ton code de s'exécuter normalement.... quand à ton "Application.macroOptions ", perso je sais pas trop ce qu'il fait....
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas