Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gestion des modules dans des classeurs EXCEL

4 réponses
Avatar
claude.vonknechten
Mon probleme.
J'ai ecrit des procedures contenu dans MODUL4.bas.
Je veux importer MODUL4.bas dans un certian nombre de classeur excel.
Plutot que d'ouvrir mes 30 classeurs excel et de faire un import (à chaque
modif dans MODUL4.bas il faut mettre à jour les 30 classeurs), quel pourrait
etre le code VB qui le ferait à ma place (les noms des classeurs sont dans
une feuille excel).

Merci d'avance pour toute suggestion, idée ou solution.

Claude.

4 réponses

Avatar
papou
Bonjour
Il faudrait poser ta question sur public.fr.excel.
Ceci étant, voici une manière de procéder (à adapter à ton cas) :

Sub ImportModule()
Dim Nombk$
Dim lebk As Workbook
Dim NomModule$
NomModule = "C:Documents and SettingspapouMes documents" _
& "Assistancempfemoduleperso.bas"
With Application.FileSearch
.NewSearch
.LookIn = "C:Documents and SettingspapouMes
documentsAssistancempfetests"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
Nombk = .FoundFiles(I)
Set lebk = Workbooks.Open(Nombk)
lebk.VBProject.VBComponents.Import NomModule
lebk.Close (True)
Next I

Else: MsgBox "pas de fichier trouvé dans le répertoire", vbInformation,
"Arrêt"
End If
MsgBox "Module moduleperso.bas importé dans les classeurs du répertoire
spécifié"
End With

End Sub



Cordialement
Pascal


"claude.vonknechten" a écrit
dans le message de news:

Mon probleme.
J'ai ecrit des procedures contenu dans MODUL4.bas.
Je veux importer MODUL4.bas dans un certian nombre de classeur excel.
Plutot que d'ouvrir mes 30 classeurs excel et de faire un import (à chaque
modif dans MODUL4.bas il faut mettre à jour les 30 classeurs), quel
pourrait
etre le code VB qui le ferait à ma place (les noms des classeurs sont dans
une feuille excel).

Merci d'avance pour toute suggestion, idée ou solution.

Claude.


Avatar
claude.vonknechten
Merci beaucoup à Pascal pour sa réponse que j'ai réussi à mettre en oeuvre.
Par contre il me reste le problème induit.
Avant de faire l'import il me faut dabord supprimer le module 4 existant
avant d'en importer la nouvelle version.
C'est la syntaxe qui me pose problème:
lebk.VBProject.vbcomponents("module4").Remove NE MARCHE PAS!
lebk.VBProject.vbcomponents.Remove ("MODULE4) NE MARCHE PAS!
lebk.VBProject.vbcomponents.MODULE4.remove NE MARCHE PAS!

Merci pour votre aide précieuse,

Cordialement
Claude.

"claude.vonknechten" a écrit :

Mon probleme.
J'ai ecrit des procedures contenu dans MODUL4.bas.
Je veux importer MODUL4.bas dans un certian nombre de classeur excel.
Plutot que d'ouvrir mes 30 classeurs excel et de faire un import (à chaque
modif dans MODUL4.bas il faut mettre à jour les 30 classeurs), quel pourrait
etre le code VB qui le ferait à ma place (les noms des classeurs sont dans
une feuille excel).

Merci d'avance pour toute suggestion, idée ou solution.

Claude.


Avatar
papou
Bonjour

On Error Resume Next
With lebk.VBProject.VBComponents
.Remove .Item("Module4")
End With
On Error GoTo 0

Cordialement
Pascal

"claude.vonknechten" a écrit
dans le message de news:

Merci beaucoup à Pascal pour sa réponse que j'ai réussi à mettre en
oeuvre.
Par contre il me reste le problème induit.
Avant de faire l'import il me faut dabord supprimer le module 4 existant
avant d'en importer la nouvelle version.
C'est la syntaxe qui me pose problème:
lebk.VBProject.vbcomponents("module4").Remove NE MARCHE PAS!
lebk.VBProject.vbcomponents.Remove ("MODULE4) NE MARCHE PAS!
lebk.VBProject.vbcomponents.MODULE4.remove NE MARCHE PAS!

Merci pour votre aide précieuse,

Cordialement
Claude.

"claude.vonknechten" a écrit :

Mon probleme.
J'ai ecrit des procedures contenu dans MODUL4.bas.
Je veux importer MODUL4.bas dans un certian nombre de classeur excel.
Plutot que d'ouvrir mes 30 classeurs excel et de faire un import (à
chaque
modif dans MODUL4.bas il faut mettre à jour les 30 classeurs), quel
pourrait
etre le code VB qui le ferait à ma place (les noms des classeurs sont
dans
une feuille excel).

Merci d'avance pour toute suggestion, idée ou solution.

Claude.




Avatar
claude.vonknechten
Quel ane je suis, j'ai bien vu les objets "item" dans la fenetre espion mais
je n'ai pas pensé à les nommer dans le nom de l'objet.
En tout cas merci beaucoup à Pascal pour sa réponse et son aide

Claude
"claude.vonknechten" a écrit :

Mon probleme.
J'ai ecrit des procedures contenu dans MODUL4.bas.
Je veux importer MODUL4.bas dans un certian nombre de classeur excel.
Plutot que d'ouvrir mes 30 classeurs excel et de faire un import (à chaque
modif dans MODUL4.bas il faut mettre à jour les 30 classeurs), quel pourrait
etre le code VB qui le ferait à ma place (les noms des classeurs sont dans
une feuille excel).

Merci d'avance pour toute suggestion, idée ou solution.

Claude.