Bonjour,
Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible de
charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les vois
bien
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible de charger le fichier "nom du fichier" -
Problème probablement lié au contenu du fichier Í importer.
Brat'ac
Geo a émis l'idée suivante :
De Brat'ac, le 29/01/2022 :
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible de charger le fichier "nom du fichier" -
Problème probablement lié au contenu du fichier Í importer.
Non, puisque si je les importe un Í un comme cela c'est bon Chemin = "C:UsersMichelDesktopmacro_vba" Application.VBE.ActiveVBProject.VBComponents.Import (Chemin & "Module1.bas")
Geo a émis l'idée suivante :
De Brat'ac, le 29/01/2022 :
Bonjour,
Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible de
charger le fichier "nom du fichier" -
Problème probablement lié au contenu du fichier Í importer.
Non, puisque si je les importe un Í un comme cela c'est bon
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible de charger le fichier "nom du fichier" -
Problème probablement lié au contenu du fichier Í importer.
Non, puisque si je les importe un Í un comme cela c'est bon Chemin = "C:UsersMichelDesktopmacro_vba" Application.VBE.ActiveVBProject.VBComponents.Import (Chemin & "Module1.bas")
db
Le 29/01/2022 Í 09:13, Brat'ac a écrit :
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les
vois bien
Sub Import_VBA() Chemin = "C:UsersMichelDesktopmacro_vba" Fichier = Dir(Chemin) Do While Fichier <> "" Fichier = Dir 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Loop End Sub
Peut-être en respectant le fonctionnement du do while : Fichier = Dir(Chemin) Do While Fichier <> "" 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Fichier = Dir Loop db
Le 29/01/2022 Í 09:13, Brat'ac a écrit :
Bonjour,
Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les
vois bien
Sub Import_VBA() Chemin = "C:UsersMichelDesktopmacro_vba" Fichier = Dir(Chemin) Do While Fichier <> "" Fichier = Dir 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Loop End Sub
Peut-être en respectant le fonctionnement du do while : Fichier = Dir(Chemin) Do While Fichier <> "" 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Fichier = Dir Loop db
Brat'ac
db avait écrit le 29/01/2022 :
Le 29/01/2022 Í 09:13, Brat'ac a écrit :
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les
vois bien
Sub Import_VBA() Chemin = "C:UsersMichelDesktopmacro_vba" Fichier = Dir(Chemin) Do While Fichier <> "" Fichier = Dir 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Loop End Sub
Peut-être en respectant le fonctionnement du do while : Fichier = Dir(Chemin) Do While Fichier <> "" 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Fichier = Dir Loop db
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
db avait écrit le 29/01/2022 :
Le 29/01/2022 Í 09:13, Brat'ac a écrit :
> Bonjour,
> Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
> alors que si je regarde les fichiers passer avec une Msgbox je les
vois bien
>
> Sub Import_VBA()
>
> Chemin = "C:UsersMichelDesktopmacro_vba"
> Fichier = Dir(Chemin)
>
> Do While Fichier <> ""
> Fichier = Dir
> 'MsgBox Fichier
> Application.VBE.ActiveVBProject.VBComponents.Import (Fichier)
> Loop
> End Sub
Peut-être en respectant le fonctionnement du do while :
Fichier = Dir(Chemin)
Do While Fichier <> ""
'MsgBox Fichier
Application.VBE.ActiveVBProject.VBComponents.Import (Fichier)
Fichier = Dir
Loop
db
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
Bonjour, Je n'arrive pas Í comprendre pourquoi je me ramasse un - Impossible
de charger le fichier "nom du fichier" -
alors que si je regarde les fichiers passer avec une Msgbox je les
vois bien
Sub Import_VBA() Chemin = "C:UsersMichelDesktopmacro_vba" Fichier = Dir(Chemin) Do While Fichier <> "" Fichier = Dir 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Loop End Sub
Peut-être en respectant le fonctionnement du do while : Fichier = Dir(Chemin) Do While Fichier <> "" 'MsgBox Fichier Application.VBE.ActiveVBProject.VBComponents.Import (Fichier) Fichier = Dir Loop db
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Dans une fenêtre VBA, tu as des modules standards, des modules de
classe, des formulaires.
Chaque type de module a son extension de fichier.
A ) Module standard : .bas
B )
Module de classeur qui comprend tous les modules des feuilles de calcul,
le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls
C ) Les formulaires : .Frm
Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ
présent dans le projetVBA.
Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as
différents types de fichiers, tu vas avoir de la difficulté Í les
différencier des uns des autres.
L'adresse donnée contient un exemple complet quant Í la manière de procéder.
Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre
la difficulté.
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Geo
De Brat'ac, le 29/01/2022 :
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se passe. La moindre des choses serait de dire sur quelle ligne ? A quelle itération. Au lieu d'un msgbox mettre un debug.print pour avoir une idée. LÍ on n'a aucune info.
De Brat'ac, le 29/01/2022 :
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se
passe.
La moindre des choses serait de dire sur quelle ligne ? A quelle
itération.
Au lieu d'un msgbox mettre un debug.print pour avoir une idée.
LÍ on n'a aucune info.
DéjÍ essayé et lÍ je me ramasse "fichier introuvable"
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se passe. La moindre des choses serait de dire sur quelle ligne ? A quelle itération. Au lieu d'un msgbox mettre un debug.print pour avoir une idée. LÍ on n'a aucune info.
Brat'ac
Le 29/01/2022, Geo a supposé :
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se passe. La moindre des choses serait de dire sur quelle ligne ? A quelle itération. Au lieu d'un msgbox mettre un debug.print pour avoir une idée. LÍ on n'a aucune info.
Bonjour, Avec le code suivant -------------------------------------------------------------------------------------- Sub Import_VBA2() Chemin = "C:UsersMichelDesktopmacro_vbanouveau dossier" Fichier = Dir(Chemin) Do While Fichier <> "" Debug.Print Chemin & Fichier 'Option qui n'apporte rien de visible sur l'erreur Application.VBE.ActiveVBProject.VBComponents.Import (Chemin & Fichier) Fichier = Dir Loop End Sub ------------------------------------------------------------------------------------------ C'est sur les fichiers "frx" qu'il y a un probléme j'ai l'erreur suivante qui s'affiche Í l'exécution de la macro Impossible de charger C:UsersMichelDesktopmacro_vbaTable.frx Le fichier du code du formulaire (.frm) lui est bien chargé sans erreur MAIS ...... le formulaire est bien chargé quand même !!!!! Dans le fichier log qui est cré j'ai ceci "Le nom Table de la feuille ou de la feuille MDI est déjÍ utilisé ; impossible de charger cette feuille." J'ai résolu le PB avec On Error Resume Next Mais pourquoi ?
Le 29/01/2022, Geo a supposé :
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se passe.
La moindre des choses serait de dire sur quelle ligne ? A quelle itération.
Au lieu d'un msgbox mettre un debug.print pour avoir une idée.
LÍ on n'a aucune info.
Bonjour,
Avec le code suivant
--------------------------------------------------------------------------------------
Sub Import_VBA2()
Chemin = "C:UsersMichelDesktopmacro_vbanouveau dossier"
Fichier = Dir(Chemin)
Do While Fichier <> ""
Debug.Print Chemin & Fichier 'Option qui n'apporte rien de
visible sur l'erreur
Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
Fichier)
Fichier = Dir
Loop
End Sub
------------------------------------------------------------------------------------------
C'est sur les fichiers "frx" qu'il y a un probléme
j'ai l'erreur suivante qui s'affiche Í l'exécution de la macro
Impossible de charger C:UsersMichelDesktopmacro_vbaTable.frx
Le fichier du code du formulaire (.frm) lui est bien chargé sans erreur
MAIS ...... le formulaire est bien chargé quand même !!!!!
Dans le fichier log qui est cré j'ai ceci
"Le nom Table de la feuille ou de la feuille MDI est déjÍ utilisé ;
impossible de charger cette feuille."
Vous donnez si peu d'informations qu'on ne peut qu'imaginer ce qui se passe. La moindre des choses serait de dire sur quelle ligne ? A quelle itération. Au lieu d'un msgbox mettre un debug.print pour avoir une idée. LÍ on n'a aucune info.
Bonjour, Avec le code suivant -------------------------------------------------------------------------------------- Sub Import_VBA2() Chemin = "C:UsersMichelDesktopmacro_vbanouveau dossier" Fichier = Dir(Chemin) Do While Fichier <> "" Debug.Print Chemin & Fichier 'Option qui n'apporte rien de visible sur l'erreur Application.VBE.ActiveVBProject.VBComponents.Import (Chemin & Fichier) Fichier = Dir Loop End Sub ------------------------------------------------------------------------------------------ C'est sur les fichiers "frx" qu'il y a un probléme j'ai l'erreur suivante qui s'affiche Í l'exécution de la macro Impossible de charger C:UsersMichelDesktopmacro_vbaTable.frx Le fichier du code du formulaire (.frm) lui est bien chargé sans erreur MAIS ...... le formulaire est bien chargé quand même !!!!! Dans le fichier log qui est cré j'ai ceci "Le nom Table de la feuille ou de la feuille MDI est déjÍ utilisé ; impossible de charger cette feuille." J'ai résolu le PB avec On Error Resume Next Mais pourquoi ?
Geo
De Brat'ac, le 30/01/2022 :
J'ai résolu le PB avec On Error Resume Next Mais pourquoi ?
MichD vous a donné l'explication :"Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA". Donc l'import n'a pas pu se faire, le On error a fait ignorer l'erreur et a continué sans faire l'import.
De Brat'ac, le 30/01/2022 :
J'ai résolu le PB avec On Error Resume Next
Mais pourquoi ?
MichD vous a donné l'explication :"Chaque objet importé ne peut pas
avoir le même nom qu'un objet déjÍ présent dans le projetVBA".
Donc l'import n'a pas pu se faire, le On error a fait ignorer l'erreur
et a continué sans faire l'import.
J'ai résolu le PB avec On Error Resume Next Mais pourquoi ?
MichD vous a donné l'explication :"Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA". Donc l'import n'a pas pu se faire, le On error a fait ignorer l'erreur et a continué sans faire l'import.
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Bonjour, J'ai donné les détails dans ma réponse a Geo Dans répertoire il n'y a aucun fichier qui on le même nom, dans le classeur non plus
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des
formulaires.
Chaque type de module a son extension de fichier.
A ) Module standard : .bas
B )
Module de classeur qui comprend tous les modules des feuilles de calcul, le
Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls
C ) Les formulaires : .Frm
Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent
dans le projetVBA.
Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as
différents types de fichiers, tu vas avoir de la difficulté Í les
différencier des uns des autres.
L'adresse donnée contient un exemple complet quant Í la manière de procéder.
Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la
difficulté.
MichD
Bonjour,
J'ai donné les détails dans ma réponse a Geo
Dans répertoire il n'y a aucun fichier qui on le même nom, dans le
classeur non plus
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Bonjour, J'ai donné les détails dans ma réponse a Geo Dans répertoire il n'y a aucun fichier qui on le même nom, dans le classeur non plus
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Bonjour, J'ai donné les détails dans ma réponse a Geo Dans répertoire il n'y a aucun fichier qui on le même nom, dans le classeur non plus
L'exemple de Ron de Bruin est plus complet : https://www.rondebruin.nl/win/s9/win002.htm Mais je t'ai créé une procédure, qui te permet d'exporter et d'importer Í l'intérieur de la même procédure. Pour ton information : Les modules de classe comprennent : les modules "feuille", ThisWorkbook" et les modules de classe s'il y en a. Leurs fichiers d'exportation ont tous l'extension ".cls". Les modules standards, l'extension ".bas" et les formulaires ".frm". '------------------------------------------------ Sub Test() Dim Ext As String, Fichier As String Dim Wk As Workbook, A As Long 'le fichier d'o͹ tu veux extraire les objets de la fenêtre VBA Fichier = "f:TéléchargementsCompilation.xlsm" 'ouverture du fichier Set Wk = Workbooks.Open(Fichier) 'avec le projetVBA du fichier que tu viens d'ouvrir With Wk.VBProject 'une boucle sur tous les composants (feuille, module, Thisworkbook For A = 1 To .VBComponents.Count 'détermine le type de composant pour attribuer la bonne extension 'de fichier selon leur type Select Case .VBComponents(A).Type Case 1 ' Module standard Ext = ".bas" Case 2 'module de classe Ext = ".cls" Case 3 'formulaire Ext = ".frm" End Select 'Chaque composant est rebaptisé avec le nom "toto" et suivi de l'index 'de la boucle. Tu peux remplacer toto par l'expression de ton choix x = "toto" & A .VBComponents(A).Name = x 'Exportation du composant dans le répertoire de ton choix Wk.VBProject.VBComponents(A).Export "f:Téléchargementstest" & x & Ext 'importation du composant dans le fichier o͹ est cette macro ThisWorkbook.VBProject.VBComponents.Import "f:Téléchargementstest" & x & Ext 'Si besoin , suppression du fichier représenté le component qui vient d'être 'Importé Kill "f:Téléchargementstest" & x & Ext Next 'Fermetur du fichier Excel que tu as ouvert Wk.Close False End With End Sub '------------------------------------------------ MichD
Dans une fenêtre VBA, tu as des modules standards, des modules de
classe, des formulaires.
Chaque type de module a son extension de fichier.
A ) Module standard : .bas
B )
Module de classeur qui comprend tous les modules des feuilles de
calcul, le Thisworkbook ou les modules de classeur que l'on peut
ajouter : .Cls
C ) Les formulaires : .Frm
Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ
présent dans le projetVBA.
Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu
as différents types de fichiers, tu vas avoir de la difficulté Í les
différencier des uns des autres.
L'adresse donnée contient un exemple complet quant Í la manière de
procéder.
Tant mieux pour toi, si tu as trouvé une manière plus simple de
résoudre la difficulté.
MichD
Bonjour,
J'ai donné les détails dans ma réponse a Geo
Dans répertoire il n'y a aucun fichier qui on le même nom, dans le
classeur non plus
L'exemple de Ron de Bruin est plus complet :
https://www.rondebruin.nl/win/s9/win002.htm
Mais je t'ai créé une procédure, qui te permet d'exporter et d'importer
Í l'intérieur de la même procédure.
Pour ton information :
Les modules de classe comprennent : les modules "feuille", ThisWorkbook"
et les modules de classe s'il y en a. Leurs fichiers d'exportation ont
tous l'extension ".cls". Les modules standards, l'extension ".bas" et
les formulaires ".frm".
'------------------------------------------------
Sub Test()
Dim Ext As String, Fichier As String
Dim Wk As Workbook, A As Long
'le fichier d'o͹ tu veux extraire les objets de la fenêtre VBA
Fichier = "f:TéléchargementsCompilation.xlsm"
'ouverture du fichier
Set Wk = Workbooks.Open(Fichier)
'avec le projetVBA du fichier que tu viens d'ouvrir
With Wk.VBProject
'une boucle sur tous les composants (feuille, module, Thisworkbook
For A = 1 To .VBComponents.Count
'détermine le type de composant pour attribuer la bonne extension
'de fichier selon leur type
Select Case .VBComponents(A).Type
Case 1 ' Module standard
Ext = ".bas"
Case 2 'module de classe
Ext = ".cls"
Case 3 'formulaire
Ext = ".frm"
End Select
'Chaque composant est rebaptisé avec le nom "toto" et suivi de
l'index
'de la boucle. Tu peux remplacer toto par l'expression de ton choix
x = "toto" & A
.VBComponents(A).Name = x
'Exportation du composant dans le répertoire de ton choix
Wk.VBProject.VBComponents(A).Export "f:Téléchargementstest"
& x & Ext
'importation du composant dans le fichier o͹ est cette macro
ThisWorkbook.VBProject.VBComponents.Import
"f:Téléchargementstest" & x & Ext
'Si besoin , suppression du fichier représenté le component qui
vient d'être
'Importé
Kill "f:Téléchargementstest" & x & Ext
Next
'Fermetur du fichier Excel que tu as ouvert
Wk.Close False
End With
End Sub
'------------------------------------------------
Dans une fenêtre VBA, tu as des modules standards, des modules de classe, des formulaires. Chaque type de module a son extension de fichier. A ) Module standard : .bas B ) Module de classeur qui comprend tous les modules des feuilles de calcul, le Thisworkbook ou les modules de classeur que l'on peut ajouter : .Cls C ) Les formulaires : .Frm Chaque objet importé ne peut pas avoir le même nom qu'un objet déjÍ présent dans le projetVBA. Par conséquent, si tu boucles sur les fichiers d'un répertoire, si tu as différents types de fichiers, tu vas avoir de la difficulté Í les différencier des uns des autres. L'adresse donnée contient un exemple complet quant Í la manière de procéder. Tant mieux pour toi, si tu as trouvé une manière plus simple de résoudre la difficulté. MichD
Bonjour, J'ai donné les détails dans ma réponse a Geo Dans répertoire il n'y a aucun fichier qui on le même nom, dans le classeur non plus
L'exemple de Ron de Bruin est plus complet : https://www.rondebruin.nl/win/s9/win002.htm Mais je t'ai créé une procédure, qui te permet d'exporter et d'importer Í l'intérieur de la même procédure. Pour ton information : Les modules de classe comprennent : les modules "feuille", ThisWorkbook" et les modules de classe s'il y en a. Leurs fichiers d'exportation ont tous l'extension ".cls". Les modules standards, l'extension ".bas" et les formulaires ".frm". '------------------------------------------------ Sub Test() Dim Ext As String, Fichier As String Dim Wk As Workbook, A As Long 'le fichier d'o͹ tu veux extraire les objets de la fenêtre VBA Fichier = "f:TéléchargementsCompilation.xlsm" 'ouverture du fichier Set Wk = Workbooks.Open(Fichier) 'avec le projetVBA du fichier que tu viens d'ouvrir With Wk.VBProject 'une boucle sur tous les composants (feuille, module, Thisworkbook For A = 1 To .VBComponents.Count 'détermine le type de composant pour attribuer la bonne extension 'de fichier selon leur type Select Case .VBComponents(A).Type Case 1 ' Module standard Ext = ".bas" Case 2 'module de classe Ext = ".cls" Case 3 'formulaire Ext = ".frm" End Select 'Chaque composant est rebaptisé avec le nom "toto" et suivi de l'index 'de la boucle. Tu peux remplacer toto par l'expression de ton choix x = "toto" & A .VBComponents(A).Name = x 'Exportation du composant dans le répertoire de ton choix Wk.VBProject.VBComponents(A).Export "f:Téléchargementstest" & x & Ext 'importation du composant dans le fichier o͹ est cette macro ThisWorkbook.VBProject.VBComponents.Import "f:Téléchargementstest" & x & Ext 'Si besoin , suppression du fichier représenté le component qui vient d'être 'Importé Kill "f:Téléchargementstest" & x & Ext Next 'Fermetur du fichier Excel que tu as ouvert Wk.Close False End With End Sub '------------------------------------------------ MichD