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 :

[Résolu] Exécution de fonctions VBA à l'ouverture


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut [Résolu] Exécution de fonctions VBA à l'ouverture
    Bonjour,
    J'ai une fonction dans un module VBA d'un fichier qui est censée récupérer l'année à 4 chiffres qui se trouve dans le nom du dit fichier.
    PAr exemple, si mon fichier s'appelle "Relevé 2022.xlsm" alors la fonction RenvoieNomFichier donne "2022".
    Et pour que ce nombre puisse être traité comme un nombre, je déclare la fonction comme integer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function RenvoieNomFichier() As Integer
    ' Sans l'extension (4 derniers caractères)
    Dim temp As String
    temp = ThisWorkbook.Name
    RenvoieNomFichier = Mid(temp, 8, Len(temp) - 12)
     
    End Function
    Dans une cellule j'ai écrit la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ="Réalisé " & RenvoieNomFichier()
    Quand je tape la formule et que je la valide j'obtiens bien "Réalisé 2022"

    Mais si je quitte la fichier après l'avoir enregistré et que je le rouvre, alors j'obtiens "Réalisé Relevé2022." (avec un point) dans la cellule où se trouve la formule
    Si je double-clique sur la cellule et que je valide, alors le résultat correct s'affiche.

    Comment faire en sorte que le résultat correct s'affiche dès l'ouverture du fichier ?

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    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 : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est curieux car je ne vois pas où se situe le problème. J'ai testé votre fonction et cela fonctionne parfaitement. J'ai également testé en désactivant le calcul automatique.
    Ceci étant dit, il est possible de faire cette extraction sans passer par du VBA. La fonction CELLULE avec comme le paramètre nomfichier renvoie le nom et le chemin complet du fichier. C'est un peut plus long à extraire mais cela fonctionne parfaitement

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CELLULE("nomfichier";A1)
    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
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Merci pour votre réponse.
    Votre réponse m'a permis de comprendre que mon problème est lié à l'existence d'un fichier de macro complémentaire .XLA que je charge à chaque utilisation d'Excel (ce fichier comporte des macros VBA que j'utilise souvent). En plus, ce fichier comportait une ancienne version de ma macro RenvoieNomFichier ce qui explique l'affichage "Réalisé Relevé2022." à l'ouverture du fichier
    Si je désactive ce complément alors pas de problème
    En résumé, il suffisait que je supprime la fonction du fichier XLA et ça marche.

    Merci aussi pour le tuyau sur la fonction cellule("nomfichier") que je ne connaissais pas et qui va aussi me permettre de simplifier un certain nombre de choses.

Discussions similaires

  1. Exécuter du code vba à l'ouverture d'un classeur
    Par possible924 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2022, 14h38
  2. [AC-2010] Exécuter une fonction VBA en passant le nom sous forme de paramètre
    Par lololebricoleur dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2019, 18h08
  3. Réponses: 1
    Dernier message: 31/10/2016, 08h34
  4. comment exécuter ma fonction VBA dans Access
    Par kapotocho dans le forum VBA Access
    Réponses: 23
    Dernier message: 18/01/2008, 16h43
  5. [VBA] fonction vba à l'ouverture d'un fichier access
    Par fabiolous dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/05/2007, 16h27

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