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 :

Mise à jour Modules par macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut Mise à jour Modules par macro
    Bonsoir le forum,

    Comment remplacer par macro un module dans un projet VBA ?

    Lorsque je supprime le module d'origine pour le remplacer, ce dernier ne s'efface pas toujours et l'import du module de remplacement se renomme avec un 1 à la fin.
    Du coup j'ai des procédures en double.


    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Bonjour et merci pour la réponse.

    Ce lien est très intéressant pour la manip des modules.

    Par contre je ne trouve pas de solution à mon problème.

    Lorsque je veux supprimer puis remplacer par macro plusieurs modules de mon projet, il arrive que la suppression ne se fasse pas. Du coup à l’import le module est doublé.

    Idem si je renomme le module à remplacer.

    Ce problème est fréquent lorsque je veux remplacer un groupe de modules (4 ou 5).

    On dirait que VBA n’efface pas de sa mémoire le nom du module supprimé.

    Existe-t-il un utilitaire, ou une macro, qui permettrait de mettre à jour un projet VBA (Excel) en toute sécurité ????

    Merci à tous

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par Crusoe Voir le message
    Par contre je ne trouve pas de solution à mon problème.
    Et si tu mettais le code que tu utilises sur le forum, je pense que cela aiderait les membres de celui-ci à t'aider.

    Comment veux-tu qu'ils puissent t'aider sans cela ? Il y a peut-être un problème dans celui-ci.

    Philippe

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Salut le forum,

    Exact, avec le code ce serait peut être plus clair....

    Je précise aussi que le code est dans le projet ou sont les modules à remplacer.

    Je n'ai pas testé l'opération en partant d'un projet séparé...

    Peut être que ...


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Sub MiseAJourAuto()
      Dim moduleASupprimer As String
      Dim moduleAAjouter As String
      Dim GarePrincipale As String
      Dim CheminModule As String
      'On Error Resume Next
      CheminModule = LitDansFichierIni("Path", "St_ChHector", ThisWorkbook.Path & "\Hector.ini")
      GarePrincipale = LitDansFichierIni("GarePrincipale", "St_GarePrincipale", ThisWorkbook.Path & "\Hector.ini")
      CheminModule = CheminModule & GarePrincipale & "\MaJ\"
      monfichier = Dir(CheminModule & "*.bas") '' lit dans le répertoire actuel
      If monfichier > "" Then
        Do Until monfichier = ""
          moduleAAjouter = monfichier
          moduleASupprimer = Left$(monfichier, Len(monfichier) - 4)
          With ThisWorkbook.VBProject.VBComponents
            For x = 1 To .Count
              Select Case .Item(x).Type = 1
                Case 1
                  If UCase(.Item(x).Name) = UCase(moduleASupprimer) Then
                    .Remove .Item(moduleASupprimer)
                    Exit For
                  End If
                Case 3
                '
                Case 100
                '
              End Select
            Next x
            .Import CheminModule & moduleAAjouter
          End With
          Kill CheminModule & monfichier
          monfichier = Dir
        Loop
      End If
    End Sub

    Merci pour votre aide

Discussions similaires

  1. [XL-2007] Mise à jour liens par macro
    Par guyanais dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/12/2012, 20h41
  2. mise à jour NTX par VFP
    Par asmahane dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 06/01/2008, 12h40
  3. Comment supprimer un module par macro ?
    Par Unknow28 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 03/01/2008, 20h48
  4. [EXCEL 2003] TCD - mise en forme par macro après rafraîchissement
    Par paul42 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/11/2007, 04h21
  5. Mise à jour automatique par date
    Par man18 dans le forum Access
    Réponses: 2
    Dernier message: 25/01/2007, 12h06

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