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 :

Mettre à jour des macros d'un fichier mère dans d'autres fichiers (enfants)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut Mettre à jour des macros d'un fichier mère dans d'autres fichiers (enfants)
    Bonjour
    j'ai un fichier mère qui me permet de piloter des fichiers utilisateurs tous créer à partir d'un même modèle. Dans le modèle, il y a des USF et donc des macros attachés.
    Donc, si je veux ajouter ou modifier une macro dans tous les fichiers utilisateurs, je dois tous les ouvrir, faire la modif et les fermer.
    Il y a risque d'erreur ou d'omission...
    Je ne peux pas piloter les USF à partir du fichier mère, j'imagine, vu que les fichiers utilisateurs peuvent être ouvert en même temps, mon fichier mère sera sollicité par plusieurs fichiers, on ne peut pas faire tourner des macros en même temps (même s'il n'y a aucun enregistrement sur le fichier mère) ?

    Y a-t-il une autre solution ?

    J'ai trouvé ce code
    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
    'mettre à jour le code d'un module existant dans un autre classeur
    Sub MAJCodeModule()
    Dim S As String, Wbk As Workbook
     
      'module à copier
      With ActiveWorkbook.VBProject.VBComponents("CodACopier").CodeModule
        S = .Lines(1, .CountOfLines)
      End With
     
      Set Wbk = Workbooks("ClassEnfant1.xlsm")
      'détruire le module à mettre à jour s'il existe
      On Error Resume Next
      With Wbk.VBProject.VBComponents
        .Remove .Item("CodA_Modif")
      End With
      On Error GoTo 0   'Fin du resume next
      'ajouter un nouveau module et copier le code
      Wbk.VBProject.VBComponents.Add(1).Name = "CodA_Modif"
      With Wbk.VBProject.VBComponents("CodACopier").CodeModule
        .AddFromString S
      End With
     
    End Sub 'fs
    Mais cela ne fonctionne pas, sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveWorkbook.VBProject.VBComponents("CodACopier").CodeModule
    j'ai l'erreur 1004 "la méthode "VbProject' a échoué

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mouftie Voir le message
    Bonjour,

    Juste pour vous dire que vous pourriez aussi regarder du côté des macros complémentaires.
    Une macro complémentaire contient vos macros, userforms, modules de classes, etc. Une simple diffusion permet de mettre à jour les postes des utilisateurs.
    J'utilise couramment cette technique avec mes clients. L'avantage est de ne pas immobiliser les postes clients lors des mises à jour, la prise en compte de la macro complémentaire se fait au lancement d'Excel.

    Un exemple du menu d'une macro complémentaire dans l'onglet des Compléments d'Excel. Il y a déjà des exemples de macros complémentaires sur ce forum.
    Pièce jointe 457425

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour Eric,
    Merci pour ta réponse.
    Je n'ai jamais utilisé de macro complémentaire, mais l'idée est intéressante.
    Quelques questions, avant d'essayer... sachant que mes utilisateurs ne sont pas sur le même serveur que moi.
    1. Est-ce que chaque utilisateur doit activer la macro complémentaire ?
    2. Faut-il passer par un administrateur pour les installer ?
    3. Y a-t-il un mode opératoire orienté vers le partage à des utilisateurs néophytes et éloignés ?


    Merci pour tes réponses.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mouftie Voir le message
    Un exemple ici additionner-plage-cellules-contenant-caracteres-numeriques-alphanumeriques

    1. Est-ce que chaque utilisateur doit activer la macro complémentaire ?
      Oui, mais une fois installée c'est automatique. La macro est chargée et déchargée à chaque début et fin de session Excel. Le principe est présent dans la macro complémentaire prise en exemple. Lorsque qu'une nouvelle version arrive, l'utilisateur doit simplement mettre la macro dans le répertoire choisi (Excel fermé).
    2. Faut-il passer par un administrateur pour les installer ?
      Il est possible que les utilisateurs n'aient pas les droits pour installer la macro dans le répertoire C:\Users\VotreUser\AppData\Roaming\Microsoft\AddIns. Mais cela fonctionne avec n'importe quel répertoire du poste utilisateur.
    3. Y a-t-il un mode opératoire orienté vers le partage à des utilisateurs néophytes et éloignés ?
      Je peux en transmettre un. Me transmettre votre adresse en MP

Discussions similaires

  1. [2013] Macro mettre à jour des liens en lisant la ligne suivante ou précédente
    Par Marjo2 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 29/01/2016, 10h30
  2. Réponses: 1
    Dernier message: 13/01/2011, 11h45
  3. Mettre à jour des macros à partir d'un classeur maitre
    Par philippeFrQc dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/12/2010, 20h25
  4. Ajouter ou mettre à jour des éléments d'un fichier A vers un fichier B
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 17
    Dernier message: 02/09/2010, 15h46
  5. Réponses: 1
    Dernier message: 20/03/2007, 08h58

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