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 :

Fonction Personnalisé Complexe [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Par défaut Fonction Personnalisé Complexe
    Bonjour à tout le monde

    Je vous soumets mon problème :

    J'aimerai cacher mes formules que j'ai mis pas mal de temps à faire sur un fichier excel en les transposant en une fonction personnalisé sous VBA.

    la formule sous excel donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SIERREUR(SOMMEPROD((ESTNUM(EQUIV(Logement;E202:O202;0)))*QuantiteEF);0)
    Logement correspond à un : =DECALER(A77;;4;;NBVAL(77:77)-3).
    QuantitéEF correspond à un : =DECALER(A77;20;4;;NBVAL(77:77)-3).

    J'aimerais dans la mesure du possible faire une formule avec le critère: A77 (qui n'est pas forcement la cellule choisi)

    en gros la formule complète donne SIERREUR(SOMMEPROD((ESTNUM(EQUIV(DECALER(A77;;4;;NBVAL(77:77)-3);E202:O202;0)))*DECALER(A77;20;4;;NBVAL(77:77)-3));0).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function NBAPSEF(Lgt) 
    Application.Volatile
    'Range(Lgt).End(xlToRight).Column address
    NBAPSEF = WorksheetFunction.SumProduct((WorksheetFunction.ISNUMBER(WorksheetFunction.MATCH(Range(Lgt).Address, E202:O202, 0))) * Range(lgt).offset(20,4).Address)
    End Function
    J'avais commencé à faire un bout de code en décomposant petit à petit mais je me perds énormément dans les variable que je ne maîtrise pas.
    Pourriez vous m'aider un tantinet
    En vous remerciant par avance

    Gilles

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Plutôt que de passer par plusieurs WorksheetFunction imbriqués, tu pourrais inscrire ta formule telle que tu l'écris dans une cellule et la copier en valeur par la suite.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Par défaut
    je voudrais que un utilisateur lambda puisse faire évoluer s'il le veut le fichier sans pour autant être un néophite des formules excel, de plus, je voudrais protéger mes formules.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Je ne connais pas ton fichier, mais tout pourrait se faire par VBA sans nécessairement utiliser une fonction personnalisée...

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Par défaut
    je peux te le transmettre si tu veux afin que tu comprennes

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juin 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2015
    Messages : 23
    Par défaut
    Bonjour,

    Tu peux joindre ton fichier à la discussion, cela permettrait à tous de comprendre, y compris pour les visiteurs

    Fais juste attention aux données confidentielles de ton entreprise.
    Je conseille de supprimer les adresses, de remplacer les valeurs par des données bidons.

    Ludo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Fonction Si complexe
    Par ssmike22 dans le forum Excel
    Réponses: 2
    Dernier message: 12/10/2012, 06h06
  2. Switch fonction trop complexe
    Par Jarod51 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/03/2011, 08h47
  3. Control personnalisé complexe
    Par Aukys dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/01/2011, 08h19
  4. Fonction personnalisé pour convertir des secondes en Minutes:Secondes
    Par kurul1 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 10/01/2011, 22h26
  5. Appel fonction javascript (complexe)
    Par loooool92 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/06/2009, 15h00

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