Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Le 30/01/22 Í 06:38, Brat'ac a écrit :
MichD a présenté l'énoncé suivant :
Le 29/01/22 Í 12:15, Brat'ac a écrit :
Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Le 30/01/2022 Í 14:03, MichD a écrit :Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Le 30/01/2022 Í 14:03, MichD a écrit :
Le 30/01/22 Í 06:38, Brat'ac a écrit :
MichD a présenté l'énoncé suivant :
Le 29/01/22 Í 12:15, Brat'ac a écrit :
Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Le 30/01/2022 Í 14:03, MichD a écrit :Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Le 30/01/22 Í 11:55, Frédéric Ponsinet a écrit :Le 30/01/2022 Í 14:03, MichD a écrit :Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Bonjour
Si dans un classeur tu as un module1 et que tu veux l'importer dans un
autre classeur ayant aussi un module1, tu ne peux pas avoir le même nom
pour ce module que tu importes. Comme tu ne peux pas avoir le même pour
des feuilles dans un classeur, cela s'applique aussi pour les objets que
l'on retrouve avec les objets dans la fenêtre VBA. La procédure suggérée
ici fait ce travail sans problème.
MichD
Le 30/01/22 Í 11:55, Frédéric Ponsinet a écrit :
Le 30/01/2022 Í 14:03, MichD a écrit :
Le 30/01/22 Í 06:38, Brat'ac a écrit :
MichD a présenté l'énoncé suivant :
Le 29/01/22 Í 12:15, Brat'ac a écrit :
Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Bonjour
Si dans un classeur tu as un module1 et que tu veux l'importer dans un
autre classeur ayant aussi un module1, tu ne peux pas avoir le même nom
pour ce module que tu importes. Comme tu ne peux pas avoir le même pour
des feuilles dans un classeur, cela s'applique aussi pour les objets que
l'on retrouve avec les objets dans la fenêtre VBA. La procédure suggérée
ici fait ce travail sans problème.
MichD
Le 30/01/22 Í 11:55, Frédéric Ponsinet a écrit :Le 30/01/2022 Í 14:03, MichD a écrit :Le 30/01/22 Í 06:38, Brat'ac a écrit :MichD a présenté l'énoncé suivant :Le 29/01/22 Í 12:15, Brat'ac a écrit :Application.VBE.ActiveVBProject.VBComponents.Import (Chemin &
"Module1.bas")
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
Bonjour la communauté,
Je me demande si ce que souhaite Brat'ac ne serait pas simplement un
déplacement de module vba d'un classeur Í l'autre, les modules ainsi
déplacés se renomment automatiquement pour un même nom.?
Bonjour
Si dans un classeur tu as un module1 et que tu veux l'importer dans un
autre classeur ayant aussi un module1, tu ne peux pas avoir le même nom
pour ce module que tu importes. Comme tu ne peux pas avoir le même pour
des feuilles dans un classeur, cela s'applique aussi pour les objets que
l'on retrouve avec les objets dans la fenêtre VBA. La procédure suggérée
ici fait ce travail sans problème.
MichD
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
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
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