IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Utilisation macros complémentaire xla


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    bonjour
    c'est ce que je cherche a faire également.
    Intuitivement je faisais de la sorte : macro complémentaire, parcourir etc etc
    mais il me refuse mes macros en disant qu'elles n'ont pas le format de macro complémentaire... alors que les macro tournent impeccablement bien...

    Quid? comment puis je faire pour les mettre?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as réalisé tes macro dans un xls, c'est bien ça ?
    Alors enregistre le fichier avec les seules macros (sans les données) sous le nom "NomDuFichier.xla"
    Tu le places dans un endroit où tu as des chances de le retrouver et ensuite, tu vas le chercher dans Excel -> Outils -> Macros complémentaires etc.
    Là tes macros seront accessibles.
    Tu peux aussi valider le fichier par soft. Regarde à AddIns dans l'aide.
    Si tu as un souci, tu dis
    A+

  3. #3
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    bon je pense que mon erreur vient de mon code...

    j'ai mis dans mon xla un nouveau module (nommé toto.xla) avec de nombreuses fonctions (dont voici un extrait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Function PASS(Optional iAnnee As Integer) As Double
    If iAnnee = False Then iAnnee = Year(Now)
     
        Select Case iAnnee
            Case 2007: PASS = 32184
            Case 2006: PASS = 31068
            Case 2005: PASS = 30192
            Case 2004: PASS = 29712
            Case 2003: PASS = 29184
            Case Else: PASS = "Erreur"
        End Select
    End Function
    Function PMSS(Optional iAnnee As Integer) As Double
    If iAnnee = False Then iAnnee = Year(Now)
        PMSS = PASS(iAnnee) / 12
    End Function
     
    Function TrancheA(dsalaire As Double, Optional iAnnee As Integer) As Double
        If iAnnee = False Then iAnnee = Year(Now)
        TrancheA = Min(dsalaire, PASS(iAnnee))
    End Function
     
    Function TrancheB(dsalaire As Double, Optional iAnnee As Integer, Optional bRetire As Boolean) As Double
        If iAnnee = False Then iAnnee = Year(Now)
        TrancheB = Min(dsalaire, 4 * PASS(iAnnee)) + (Not bRetire) * TrancheA(dsalaire, iAnnee)
    End Function
     
    Function TrancheC(dsalaire As Double, Optional iAnnee As Integer, Optional bRetire As Boolean) As Double
        If iAnnee = False Then iAnnee = Year(Now)
        TrancheC = Min(dsalaire, 8 * PASS(iAnnee)) + (Not bRetire) * TrancheB(dsalaire, iAnnee, True)
    End Function
     
    Function TrancheD(dsalaire As Double, Optional iAnnee As Integer) As Double
        If iAnnee = False Then iAnnee = Year(Now)
        TrancheD = dsalaire - TrancheC(dsalaire, iAnnee, True)
    End Function
     
    Function Min(d1 As Double, d2 As Double) As Double
        Min = d1 - (d1 > d2) * (d2 - d1)
    End Function
     
    Function Budget(rDonnees As Range, dTaux As Double) As Double
    'si on n'entre pas des taux en pourcentage
        If dTaux > 1 Then dTaux = dTaux / 100
     
    Budget = Application.WorksheetFunction.Sum(rDonnees) * dTaux
     
    End Function
     
    Function BudgetBrut(rDonnees As Range, dTauxA As Double, dTauxB As Double) As Double
    'si on n'entre pas des taux en pourcentage
        If dTauxA > 1 Then dTauxA = dTauxA / 100
        If dTauxB > 1 Then dTauxB = dTauxB / 100
     
    Budget = Application.WorksheetFunction.Sum(rDonnees) * dTaux
     
    End Function
    et quand je passe avec la méthode décrite plus haut j'ai un message d'erreur disant que je ne mets pas une macro complementaire valide.


    je vais essayer la méthode des addsin, en esperant avoir plus de succes.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, sans aller plus loin, ça vient au moins de cette ligne
    If iAnnee = False Then iAnnee = Year(Now)
    Tu déclares iAnnee comme un integer et tu l'utilises comme un boolean.
    Mets plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If iAnnee = 0 Then iAnnee = Year(Now)
    Quoique je le déclarerais en variant
    Tu testes

    Edit
    J'ai regardé le reste de ton code. Si PASS ne dépasse pas 65536, ce sont des long, pas des doubles

  5. #5
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    en fait le cast des variables est correct... et les portions de code aussi.
    E, fait le test iAnnee =false signifie si la personne n'a rien mis pour iannee alors prends l'année en cours. (car iannee est un argument optionnel)


    Je viens de refaire la manip une dernière fois et comme par hasard tout fonctionne. Il accepte mon code.
    Malgré tout je n'arrive pas a comprendre ce qui n'allait pas avant.
    Les lois de l'informatiques sont impénétrables.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai re-regardé ton code, un peu plus loin... Que veux-tu obtenir, là
    Function PMSS(Optional iAnnee As Integer) As Double
    If iAnnee = False Then iAnnee = Year(Now)
    ......PMSS = PASS(iAnnee) / 12
    End Function
    Si tu as 2007/12, là tu vas avoir besoin d'un double... mais je ne sais pas si c'est vraiment 167,25 que tu souhaites obtenir...
    Tu dis toujours

Discussions similaires

  1. Problème utilisation macros complémentaires personnalisées
    Par AF_2.8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/06/2011, 00h32
  2. Utilisation macro complémentaire dans une macro
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2009, 16h04
  3. [XL-2003] Macro complémentaire .xla
    Par drakkar_agfa dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/05/2009, 16h30
  4. macro complémentaire xla
    Par harlockbaz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/01/2008, 09h16
  5. [VBA-E] macros complémentaires .xla et .xlt
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 08/05/2007, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo