1. #1
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    7 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 7 473
    Points : 17 536
    Points
    17 536
    Billets dans le blog
    6

    Par défaut Nommer une formule à l'aide du gestionnaire des noms

    A l'aide du gestionnaire des noms, on peut nommer
    • Une cellule ou une plage de cellules
    • Une constante
    • Une formule

    Si les deux premiers cas sont en général connus, rare sont les utilisateurs conscients que l'on peut également nommer une formule.
    Cette contribution a pour but d'illustrer cette dernière possibilité.

    Exemple simple :
    Au lieu d'utiliser la fonction AUJOURHUI() dans une formule, j'aimerais nui donner un nom par exemple DateCurrent
    Dans la boîte de dialogue "Gestionnaire des noms" que l'on appelle en cliquant sur le bouton Gestionnaire des noms, du groupe Noms définis de l'onglet [Formule], on clique sur le bouton Nouveau et on remplit les zones de texte comme illustré ci-dessous et ensuite on clique sur OK.

    Nom : 170717 - DefinedName - maDate = AUJOURDHUI.png
Affichages : 57
Taille : 10,7 Ko
    Ensuite il suffit d'écrire dans une cellule quelconque, la formule ci-dessous pour obtenir la date du jour.Exemple plus élaboré
    Le cas évoqué plus haut est tellement simple qu'il semble ridicule à juste titre de l'utiliser.
    Par contre lorsque nous somme amené à créer un planning, agenda, tableaux de bord avec des mois ou années glissants etc. il est important d'effectuer des tests pour simuler la date du jour à différentes périodes (week-end, jours fériés, etc.) afin de vérifier si nos formules, mise en forme conditionnelles, validation de données, etc. se comporte bien dans différents scénarios.
    Voilà pourquoi dans tous mes classeurs, je prévois dans une feuille contenant mes paramètres une cellule que je nomme DateTest et qui contiendra une date simulant la date du jour et une formule nommée DateCurrent qui vérifie si cette cellule est remplie et qui renverra la date contenue dans cette cellule ou la date du jour si elle est vide soit la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(DateTest;DateTest;AUJOURDHUI())
    Illustration

    Nom : 170210 _ DefinedName - DialogBox Nouveau nom (DateCurrent).png
Affichages : 63
Taille : 32,5 Ko

    Si le sujet suscite de l'intérêt, je publierai un autre cas qui gère les années civiles qui sont différentes d'années académiques par exemple.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2017
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Allier (Auvergne)

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

    Informations forums :
    Inscription : mai 2017
    Messages : 238
    Points : 380
    Points
    380

    Par défaut

    Bonjour,

    Très intéressant comme contribution !
    Petite question : Est-il possible d'appeler les formules renommer en VBA ?
    Jeune développeur toujours prêt à apprendre et à aider.

    N'oubliez pas de mettre un si vous avez été aidé , pensez aussi à mettre si vous n'avez plus de problème.

    On ne fait pas les devoirs des gens, parce que les devoirs c'est fait pour apprendre, si on ne les fait pas on apprend pas. Si on apprend pas on est pas compétent. Et si on est pas compétent mais qu'on se fait embaucher comme quelqu'un qui l'est, ça pose problème aux gens comme nous.

  3. #3
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    7 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 7 473
    Points : 17 536
    Points
    17 536
    Billets dans le blog
    6

    Par défaut

    Bonjour Oudouner,
    Merci pour ton appréciation.
    Est-il possible d'appeler les formules renommer en VBA
    Pas certain d'avoir bien compris ta question mais si c'est récupérer en VBA la valeur renvoyée par la formule nommée, voici une exemple ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
     Dim fx As Name
     Set fx = Names("DateCurrent")
     MsgBox Format(Evaluate(fx.RefersTo), "dd/mm/yyyy")
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2017
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Allier (Auvergne)

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

    Informations forums :
    Inscription : mai 2017
    Messages : 238
    Points : 380
    Points
    380

    Par défaut

    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour Oudouner,
    Merci pour ton appréciation.

    Pas certain d'avoir bien compris ta question mais si c'est récupérer en VBA la valeur renvoyée par la formule nommée, voici une exemple ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
     Dim fx As Name
     Set fx = Names("DateCurrent")
     MsgBox Format(Evaluate(fx.RefersTo), "dd/mm/yyyy")
    End Sub
    C'est exactement sa.
    Merci à toi !
    Jeune développeur toujours prêt à apprendre et à aider.

    N'oubliez pas de mettre un si vous avez été aidé , pensez aussi à mettre si vous n'avez plus de problème.

    On ne fait pas les devoirs des gens, parce que les devoirs c'est fait pour apprendre, si on ne les fait pas on apprend pas. Si on apprend pas on est pas compétent. Et si on est pas compétent mais qu'on se fait embaucher comme quelqu'un qui l'est, ça pose problème aux gens comme nous.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2015, 15h31
  2. Nommer une combobox à l'aide d'un compteur
    Par kariel dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 09/05/2014, 17h06
  3. [XL-2007] Étendre une formule à l'aide de VBA sur une plage variable
    Par cyril7751 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/07/2012, 16h23
  4. Réponses: 6
    Dernier message: 05/01/2009, 15h34
  5. Case à cocher & Nommer une formule
    Par apb62 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/05/2007, 23h40

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