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 :

Etiquettes d'aide et fonctions personnalisées VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Par défaut Etiquettes d'aide et fonctions personnalisées VBA
    Bonjour à tous.

    Je développe actuellement des fonctions personnalisées sous VBA et dans un souci de qualité je souhaite apporter des informations supplémentaires à mes fonctions.

    Est-il possible d’insérer du code à un endroit de la fonction/module/classeur pour avoir un résultat équivalent à celui-ci ? Le but est d'apporter de la visibilité à l'utilisateur sans que ce dernier bute sur la saisie des paramètres.

    Peut être que ce sujet est déjà traité, et que je n'utilise pas les bons termes pour rechercher dans le forum.

    Nom : A1.jpg
Affichages : 547
Taille : 19,5 Ko

    Nom : A2.jpg
Affichages : 478
Taille : 15,5 Ko

    Merci pour votre aide.

    (Configuration : W7/Office13)

    Tags recherche : etiquette - aide - fonctions - personnalisées - VBA - macros - personnelles - texte - sous - formule - module - complémentaire

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    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
     
    Private Sub auto_Open()
      Application.MacroOptions Macro:="SommeCouleurFond", _
      Description:="Donne la somme des nombres des cellules ayant la couleur spécifiée", Category:=14
    End Sub
     
    Function SommeCouleurFond(champ As Range, couleurFond)
       Application.Volatile
       Dim c, temp
       temp = 0
       For Each c In champ
         If c.Interior.ColorIndex = couleurFond Then
           If IsNumeric(c.Value) Then temp = temp + c.Value
         End If
       Next c
       SommeCouleurFond = temp
    End Function
    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Par défaut
    Bonjour.

    Merci pour votre réponse. J'ai bien compris le principe de fonctionnement.

    Cependant, ou s'execute le "auto_open" ? J'ai regardé dans l'objet fichier "ThisWorkbook"... vide, mais les paramètres eux, se chargent correctement. J'ai essayé de mon coté... sans succès, la fonction est reconnue, mais l'aide ne se charge pas.

    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
    Option Explicit
    Option Base 0
     
    Private Sub auto_Open()
     
        Dim mac_macro As String
        Dim mac_description As String
        Dim mac_category As String
        Dim mac_argDesc(5) As String
     
        mac_macro = "Date_HourTakt"
        mac_description = "Add a takt value to calculate next date with closed company constraints and company/public holidays constraints"
        mac_category = 14
        mac_argDesc(0) = "Start date"
        mac_argDesc(1) = "Takt value"
        mac_argDesc(2) = "Start production time"
        mac_argDesc(3) = "End production time"
        mac_argDesc(4) = "Public holidays"
     
        Application.MacroOptions Macro:=mac_macro, Description:=mac_description, Category:=mac_category, ArgumentDescriptions:=mac_argDesc
     
    End Sub
    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
    Public Function Date_HourTakt(startDate As Double, taktValue As Double, startProduction As Double, endProduction As Double, Optional workingHolidays As Range) As Double
     
        Application.Volatile
     
        Dim tempValue, value As Double
        Dim dateValue As Integer
        Dim hourValue As Double
        Dim closedInterval As Double
     
        dateValue = Int(startDate)
        hourValue = startDate - Int(startDate)
        taktValue = taktValue / 24
        closedInterval = 1 - (startProduction + endProduction)
     
        tempValue = hourValue + taktValue
     
        If tempValue > endProduction Then
            tempValue = hourValue + closedInterval + taktValue
            dateValue = dateValue + 1
        End If
     
        value = dateValue + tempValue
     
        Date_HourTakt = value
    End Function
    De plus, je n'ai aucune étiquette jaune qui apparaît dans la liste des fonctions que j'appelle (voir capture d'écran), ni aucun descriptif de paramètre (la par contre c'est normal ils ne sont pas "décrits" dans l'auto_open du fichier en PJ).

    L'aide est-elle spécifique à la liste de fonctions intégrées dans Excel ? Des idées à ce sujet ?

    Merci à vous.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Auto_open() est dans Module1

    Boisgontier

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Par défaut
    Alors après tests et recherches : Je ne connaissais pas les spécificités de Auto_Open qui permet de se passer de la methode workbook_open dans ThisWorkbook.

    Néanmoins je suis confronté a une autre difficulté : "Impossible de modifier une macro dans un classeur masqué. Affichez le classeur dans en utilisant la commande Afficher". Ce problème intervient dans la mesure ou ma fonction est dans un fichier ".xlam" l'instruction problématique est dans Application.MacroOptions (Info : un simple test sur une MsgBox fonctionne correctement).

    Le code de la fonction ci-dessous.

    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
    Private Sub Auto_Open()
     
        Dim mac_macro As String
        Dim mac_description As String
        Dim mac_category As String
        Dim mac_argDesc(5) As String
     
        mac_macro = "Mod_P3L_Date_HourTakt"
        mac_description = "Add a takt value to calculate next date with closed company constraints and company/public holidays constraints"
        mac_category = 14
        mac_argDesc(0) = "Start date"
        mac_argDesc(1) = "Takt value"
        mac_argDesc(2) = "Start production time"
        mac_argDesc(3) = "End production time"
        mac_argDesc(4) = "Public holidays"
     
        Application.MacroOptions _
            Macro:=mac_macro, _
            Description:=mac_description, _
            Category:=mac_category, _
            ArgumentDescriptions:=mac_argDesc
     
    End Sub

Discussions similaires

  1. Fonction personnalisée VBA Excel
    Par PM2801 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/05/2014, 20h23
  2. [XL-2000] Code VBA bloqué par fonction personnalisée
    Par PICHOUX dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/05/2012, 22h58
  3. [VBA]Fonction personnalisée avec "If"
    Par FWSMulder dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2008, 23h28
  4. [VBA-E] : Fonction personnalisée moyennes trimestrielles
    Par Geoffray dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/06/2006, 18h25
  5. [VBA-E] Fonction personnalisée moyenne à fin M
    Par Geoffray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2006, 20h58

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