Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2011, 22h01   #1
Invité régulier
 
Bruno
Inscription : octobre 2007
Messages : 16
Détails du profil
Informations personnelles :
Nom : Bruno
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2007
Messages : 16
Points : 5
Points : 5
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
Crusoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 00h17   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 706
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 706
Points : 3 627
Points : 3 627
Salut, voir sur http://silkyroad.developpez.com/VBA/VisualBasicEditor/
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 11h16   #3
Invité régulier
 
Bruno
Inscription : octobre 2007
Messages : 16
Détails du profil
Informations personnelles :
Nom : Bruno
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2007
Messages : 16
Points : 5
Points : 5
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
Crusoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 21h08   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 945
Points : 30 945
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h53   #5
Invité régulier
 
Bruno
Inscription : octobre 2007
Messages : 16
Détails du profil
Informations personnelles :
Nom : Bruno
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2007
Messages : 16
Points : 5
Points : 5
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 :
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
Crusoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web